「Java中间件篇Redis」-redis部分知识点总结

接上一篇 整理了一些redis集群的知识点,收藏起来,以后用的到。

「Java中间件篇Redis」-redis部分知识点总结

如何搭建一个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一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的备用节点。

集群挂掉的必要条件

  1. 某个主节点和所有从节点全部挂掉,我们集群就进入faill状态。
  2. 如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态.
  3. 如果集群任意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开发方面的技术文章。


分享到:


相關文章: