接上一篇 整理了一些redis集群的知识点,收藏起来,以后用的到。
![「Java中间件篇Redis」-redis部分知识点总结](http://p2.ttnews.xyz/loading.gif)
如何搭建一个redis集群(口述版)
- 把每个单机redis都搭建好。
- 安装ruby (集群管理工具(redis-trib.rb)是使用ruby脚本语言编写的)。
- 把每个redis的配置文件进行修改,开启集群参数。
cluster-enabled yes
- 启动全部redis服务。
- 创建集群。
[addxa@mini01 apps]$ ./redis-trib.rb create --replicas 1 192.168.253.21:7001 192.168.253.22:7002 192.168.253.23:7003 192.168.253.21:7004 192.168.253.22:7005 192.168.253.23:7006
- 查看集群信息。
192.168.253.21:7001>cluster info
- Successful!
集群是如何判断是否有某个节点挂掉
首先要说的是,每一个节点都存有这个集群所有主节点以及从节点的信息。它们之间通过互相的ping-pong判断是否节点可以连接上。
如果有一半以上的节点去ping一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的备用节点。集群挂掉的必要条件
- 某个主节点和所有从节点全部挂掉,我们集群就进入faill状态。
- 如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态.
- 如果集群任意master挂掉,且当前master没有slave.集群进入fail状态
集群数据持久化的优化
使用Replication机制,结合使用rdb和aof方式,Master主节点负责读操作,Slave从节点负责写数据,选择Replication机制的其中一种方式,将数据保存在Slava节点,然后利用Slave从节点的rdb文件和aof文件去恢复被kill掉的Master节点。
这种集群Master节点的配置文件的主要部分:
#save 900 1 #禁用Snapshot
#save 300 10
#save 60 10000
#appendonly no #禁用AOF
Slave节点的配置文件的主要部分:
save 900 1 #启用Snapshot
save 300 10
save 60 10000
appendonly yes #启用AOF
appendfilename appendonly.aof #AOF文件的名称
# appendfsync always
appendfsync everysec #每秒钟强制写入磁盘一次
# appendfsync no
no-appendfsync-on-rewrite yes #在日志重写时,不进行命令追加操作
auto-aof-rewrite-percentage 100 #自动启动新的日志重写过程
auto-aof-rewrite-min-size 64mb #启动新的日志重写过程的最小值
集群启动和关闭
- 关闭集群:将所有redis服务一个一个关闭即可。
- 重启集群:将所有redis服务一个一个启动即可。
一般没人去开关redis服务器,尤其是线上,知道就行,别动手。
集群正确关闭的姿势
正确关闭服务器:redis-cli shutdown 或者 kill,都会graceful shutdown,保证写RDB文件以及将AOF文件fsync到磁盘,不会丢失数据。
如果是Ctrl+C,或者kill -9 就会丢失数据。
执行指令bgsave 可触发rdb存盘,bgrewriteaof可触发aof重写。
点关注不迷路,持续更新java开发方面的技术文章。
閱讀更多 研報優選 的文章