实验步骤:
7.1 所有节点安装Redis
参考上文第三节
7.2 开启集群功能
修改任意一台服务器配置文件,再通过scp命令传给其他主机。
cd /opt/redis-5.0.7/ vim redis.conf ...... bind 192.168.121.10 #69行,修改为监听自己的物理网卡IP protected-mode no #88行,修改为no,关闭保护模式 port 6379 #92行,redis默认监听端口 daemonize yes #136行,开启守护进程,以独立进程启动 appendonly yes #700行,修改为yes,开启AOF持久化 cluster-enabled yes #832行,取消注释,开启群集功能 cluster-config-file nodes-6379.conf #840行,取消注释,群集名称文件设置 cluster-node-timeout 15000 #846行,取消注释,群集超时时间设置 #将文件传给另外5个节点,之后每个节点要修改监听地址为自己的IP [root@localhost redis-5.0.7]# scp redis.conf 192.168.121.20:`pwd` [root@localhost redis-5.0.7]# scp redis.conf 192.168.121.30:`pwd` [root@localhost redis-5.0.7]# scp redis.conf 192.168.121.40:`pwd` [root@localhost redis-5.0.7]# scp redis.conf 192.168.121.50:`pwd` [root@localhost redis-5.0.7]# scp redis.conf 192.168.121.60:`pwd` 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
将配置文件传给另外5个节点:
网络异常,图片无法展示
|
之后每个节点要修改监听地址为自己的IP:
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
7.3 所有节点启动redis服务
cd /opt/redis-5.0.7/ redis-server redis.conf #启动redis节点 复制代码
网络异常,图片无法展示
|
7.4 启动集群
在任意一个节点启动集群即可。
redis-cli --cluster create 192.168.121.10:6379 192.168.121.20:6379 192.168.121.30:6379 192.168.121.40:6379 192.168.121.50:6379 192.168.121.60:6379 --cluster-replicas 1 #六个主机分为三组,三主三从,前面的做主节点后面的做从节点下免交互的时候需要输入yes才可以创建 "-replicas 1"表示每个主节点有一个从节点 #前三台为Master,后三台为Slave 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
7.5 测试集群
#加-c参数,节点之间就可以互相跳转 redis-cli -h 192.168.121.10 -p 6379 -c #查看节点的哈希槽编号范围 cluster slots #赋值 set name yuji #查看键的哈希槽编号 cluster keyslot 键名 [root@mas ~]# redis-cli -h 192.168.121.10 -p 6379 -c 192.168.121.10:6379> cluster slots #查看节点的哈希槽编号范围 1) 1) (integer) 10923 #第一对主从的哈希槽编号范围 2) (integer) 16383 3) 1) "192.168.121.30" #主节点 2) (integer) 6379 3) "5f117a3e204d1d6f6dc924ad8b39034a8e9f3261" 4) 1) "192.168.121.40" #从节点 2) (integer) 6379 3) "4a05a086eec06fa4da58b15512d1c81184bc5ee5" 2) 1) (integer) 5461 #第二对主从的哈希槽编号范围 2) (integer) 10922 3) 1) "192.168.121.20" #主节点 2) (integer) 6379 3) "3008bba29dfbf342bc448ba3062b0a331c8d009e" 4) 1) "192.168.121.60" #从节点 2) (integer) 6379 3) "ee61a4709d6420bb540b2c28218fdd2dfe358b7a" 3) 1) (integer) 0 #第三对主从的哈希槽编号范围 2) (integer) 5460 3) 1) "192.168.121.10" #主节点 2) (integer) 6379 3) "d1ddb554b3edaebefa6672b2f1f8171393e1f7f3" 4) 1) "192.168.121.50" #从节点 2) (integer) 6379 3) "71e1f705ce01ca31ab16fa3cf07d7e6cbfab5978" 192.168.121.10:6379> #在10节点新建name键,会自动跳转到20节点进行存放 192.168.121.10:6379> set name yuji -> Redirected to slot [5798] located at 192.168.121.20:6379 OK 192.168.121.20:6379> cluster keyslot name #查看name键的哈希槽编号 (integer) 5798 192.168.121.20:6379> quit #退出数据库 [root@mas ~]# redis-cli -h 192.168.121.10 -p 6379 -c #重新登录10节点 192.168.121.10:6379> keys * #10节点中没有name键 (empty list or set) 192.168.121.10:6379> get name #查看name键的值,会根据键的哈希槽编号自动跳转到20节点进行获取 -> Redirected to slot [5798] located at 192.168.121.20:6379 "yuji" 192.168.121.20:6379> #已跳转到20节点 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
总结
三种模式需要注意修改不同的配置文件。
主从复制:vim /etc/redis/6379.conf
哨兵模式:vim /opt/redis-5.0.7/sentinel.conf
cluster集群:vim /opt/redis-5.0.7/redis.conf