一、redis集群模式
- redis主从模式
- redis哨兵模式
- redis高可用集群
二、linux搭建redis集群
- 创建redis集群和节点目录
- 复制一份redis.conf配置文件到node8001目录进行编辑,其他的节点也是按照一样的步骤来配置
(1)修改端口
(2)修改绑定端口
(3)修改保护模式
(4)修改数据保存路径(默认保存在当前目录下)
(5)开启集群
可以根据实际情况设置集群超时时间
(6)修改appendonly参数
(7)设置密码
两个参数的密码是一致的
(8)开启后台运行
3、启动redis全部集群节点
启动命令 ./redis-server /usr/local/rediscluster/node8002/redis.conf
4、使用redis中的redis-cli创建集群
输入命令 ./redis-cli --cluster help 可查看创建相关命令帮助
输入命令 ./redis-cli -a fedcty126 --cluster create 192.168.200.100:8001 192.168.200.100:8002 192.168.200.100:8003 192.168.200.100:8004 192.168.200.100:8005 192.168.200.100:8006 --cluster-replicas 1
(1) -a fedcty126 //redis.conf配置文件中设置的授权密码
(2)--cluster create 192.168.200.100:8001 192.168.200.100:8002 192.168.200.100:8003 192.168.200.100:8004 192.168.200.100:8005 192.168.200.100:8006 //要创建的集群节点
(3)--cluster-replicas 1 //创建一主一从
输入yes代表同意redis分配的数据保存槽,输入后才开始创建集群
5、使用redis-cli测试集群是否部署成功
输入命令 ./redis-cli -a fedcty126 -c -p 8001 进入智能客户端,设置值可以自动跳转到对应的集群下面
cluster keyslot key //查看对应的key在哪个数据槽中
cluster slots //集群数据库槽的分布信息
cluster info //集群信息
6、哨兵集群搭建
1、新增哨兵集群目录
2、复制一份sentinel.conf配置文件到node26001目录中,并打开编辑一下参数,其他节点目录都是一样的步骤
#Sentinel使用端口
(1)port 26379
#打开非保护模式
protected-mode no
#守护线程启动(即后台启动)
(2)daemonize yes
#守护进程会使用到的一个文件
(3)pidfile "/var/run/redis-sentinel.pid"(可以不配置)
#指定日志文件名,默认为"",空字符串也可用于强制Sentinel登录标准输出,指定后我们可以通过tail -f xxx.log查看日志
(4)logfile "/usr/local/lib/redis-5.0.3/redis-sentinel.log"(可以不配置)
#每个长时间运行的进程都应该有一个明确定义的工作目录。对于Redis Sentinel来说,启动时dir到/tmp是最简单的事情为进程不干扰管理任务,如卸载文件系统。(默认就是"/tmp",copy过来即可)
(5)dir "/tmp"(可以不配置)
#重要的来了
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
#告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效.需要注意的是master-ip 要写真实
的ip地址而不要用回环地址(127.0.0.1)。
(6)sentinel monitor master001 192.168.204.201 6379 2
sentinel monitor master002 192.168.204.202 6379 2
sentinel monitor master003 192.168.204.203 6379 2
#redis有设置授权密码的要设置授权密码
(7)sentinel auth-pass master003 fedcty126
sentinel auth-pass master002 fedcty126
sentinel auth-pass master001 fedcty126
#sentinel down-after-milliseconds <master-name> <milliseconds>
#这个配置项指定需要多少时间无响应,一个master才会被这个sentinel主观地认为是不可用的.单位是毫秒,默认为30秒(可以不配置)
(8)sentinel down-after-milliseconds master001 10000
sentinel down-after-milliseconds master002 10000
sentinel down-after-milliseconds master003 10000
#sentinel parallel-syncs <master-name> <numslaves>
#这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用.可以通过将这个值设为1(默认就是1)来保证每次只有一个slave处于不能处理命令请求的状态(可以不配置)
(9)sentinel parallel-syncs master001 1
sentinel parallel-syncs master002 1
sentinel parallel-syncs master003 1
#sentinel failover-timeout <master-name> <milliseconds>
# failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failover失败,默认为3分钟,单位为毫秒(可以不配置)
(10)sentinel failover-timeout master001 180000
sentinel failover-timeout master002 180000
sentinel failover-timeout master003 180000
3、配置完成后启动哨兵
启动命令 ./redis-sentinel /usr/local/redissentinelcluster/node26001/sentinel.conf (其他节点也启动)
通过命令 ps -ef|grep redis 可查看哨兵节点启动是否成功
通过命令 ./redis-cli -a fedcty126 -p 26001 info Sentinel 查看哨兵集群是否成功
有问题和建议欢迎大家留言和评论,谢谢~