一、redis主从配置
- 通过yum下载redis5.0.0的tar包到linux中
- 通过make 、make install 安装redis至/usr/local/redis 目录中
- 将解压tar包获得的redis.conf配置文件拷贝到/usr/local/redis目录下
- 在/usr/local/redis目录中创建两个slave的配置文件并分别修改相应的端口号以及添加slaveof 127.0.0.1 6379(master的ip+端口)
- 开启master分支、slave分支
(6379 master分支)
(6380、6381 slave分支)
二、哨兵模式
-
(保持上面的主从redis运行状态) 从tar包解压后的redis-5.0.0目录中cp sentinel.conf文件到/usr/local/redis目录下。
-
创建第一个哨兵:使用grep -v 反选"#"注释 及 "^$"空格 并通过管道 | 过滤剩余数据 > 到sentinel26379.conf
-
生成第二个、第三个哨兵:通过sed “s/26379/26380/g” sentinel26379.conf > sentinel26380.conf、 sed “s/26379/26381/g” sentinel26379.conf > sentinel26381.conf
-
启动哨兵sentinel:
./bin/redis-sentinel sentinel26379.conf
./bin/redis-sentinel sentinel26380.conf
./bin/redis-sentinel sentinel26381.conf -
vim开启sentinel26379.conf,标记的部分为变化的部分
哨兵模式的三个阶段:监控阶段、通知阶段、故障转移阶段
(模拟master宕机)
sdown:当前哨兵主观判断master宕机
odown:半数以上哨兵客观判断master宕机
哨兵集群投票产生一个处理此次故障转移的事件,此次结果将6380的端口的redis转成master(整个过程是自动的)
三、redis集群
#创建文件
vi redis6501.conf
#然后添加以下内容
bind 127.0.0.1
port 6501
dir "/usr/local/redis/cluster"
dbfilename "dump-6501.rdb"
cluster-enabled yes
cluster-config-file "cluster-6501.conf"
cluster-node-timeout 5000
复制5份配置文件 并开启6个redis服务
redis-cli --cluster create 127.0.0.1:6501 127.0.0.1:6502 127.0.0.1:6503 127.0.0.1:6504 127.0.0.1:6505 127.0.0.1:6506 --cluster-replicas 1
(使用–cluster create 参数 后接所有已启动的redis服务、–cluster-replicas参数 后接redis主从设置:1代表每个master分配一个slave,分配过程随机)
主从模式及集群配置成功,redis集群要对16384个槽位进行分配
./redis-cli -p 6501 -c
存储数据时候,会按照crc16算法算出结果并%16384,结果会存入相应客户端的槽位中,创建客户端时 加入-c命令,让创建或者获取的key value自动分配到相关槽位的客户机中