Redis集群
Redis集群
Redis集群是个由多个主从节点组成的分布式服务器群, 它具有复制、 高可用和分片特性。Redis 集群将所有数据存储区域划分为16384 个槽(Slot), 每个节点负责一部分槽,槽的信息存储于每个节点中。Redis 集群要将每个节点设置成集群模式,它没有中心节点,可水平扩展,它的性能和高可用性均优于主从模式和哨兵模式,而且集群配置非常简单。
相较于哨兵模式,这种方案的优点在于提高了读写的并发率,散发了I/O,在保障高可用的前提下提高了性能。
Redis集群环境
Redis集群的节点要求如下:
- 主节点不能少于总节点的一半。
- 主节点至少要有3个
准备6台机器
机器 | IP | 端口 |
Centos | 192.168.200.150 | 6379 |
Centos | 192.168.200.150 | 6380 |
Centos | 192.168.200.150 | 6381 |
Centos | 192.168.200.150 | 6382 |
Centos | 192.168.200.150 | 6383 |
Centos | 192.168.200.150 | 6384 |
在配置文件中添加/修改如下内容
六台机器都做修改
cluster-enabled yes #启动集群模式
cluster-config-file nodes-6379.conf #集群节点信息
cluster-node-timeout 5000 #集群节点的超时时限
redis-cli --cluster create --cluster-replicas 1 192.168.200.150:6379 192.168.200.150:6380 192.168.200.150:6381 192.168.200.150:6382 192.168.200.150:6383 192.168.200.150:6384
#--cluster create 创建集群
#--cluster-replicas 1 以最简单的方式创建集群,一主一从
当出现如下字符就是创建成功
集群验证
redis-cli -c -h 192.168.200.150 -p 6379 #-c 进去集群
192.168.200.150:6379> set name liao
-> Redirected to slot [5798] located at 192.168.200.150:6380
OK
#在6379中执行了命令,跳转重定向到了6380
cluster info 查看集群信息
192.168.200.150:6380> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6 #6个节点
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:2
cluster_stats_messages_ping_sent:239
cluster_stats_messages_pong_sent:227
cluster_stats_messages_meet_sent:1
cluster_stats_messages_publish_sent:581
cluster_stats_messages_sent:1048
cluster_stats_messages_ping_received:227
cluster_stats_messages_pong_received:240
cluster_stats_messages_publish_received:345
cluster_stats_messages_received:812
cluster nodes 查看集群节点列表
192.168.200.150:6380> cluster nodes
4fc7f6d66f6d394b3bfe41a21dbfd572efa42c49 192.168.200.150:6380@16380 myself,master - 0 1647007479000 2 connected 5461-10922
7b351edf211c94f71d9dae2ce7915809dc36ccc2 192.168.200.150:6383@16383 slave 4fc7f6d66f6d394b3bfe41a21dbfd572efa42c49 0 1647007484000 2 connected
b0b40504684e1c093e4de75d26ec3fd346c6840e 192.168.200.150:6384@16384 slave 3b2d411957064c75873a484b4557a4483676606d 0 1647007483515 3 connected
0b861dba13be608e4f4382b56200236875de0dcc 192.168.200.150:6382@16382 slave a78b3bfd209075453af0e67c565d01e9c3056ccb 0 1647007484000 1 connected
a78b3bfd209075453af0e67c565d01e9c3056ccb 192.168.200.150:6379@16379 master - 0 1647007485000 1 connected 0-5460
3b2d411957064c75873a484b4557a4483676606d 192.168.200.150:6381@16381 master - 0 1647007485564 3 connected 10923-16383
Redis集群操作
关闭一个集群
redis-cli -c -h 192.168.200.150 -p 6379 shutdown
#此时6379端口的redis服务已经关闭