redis集群,配置至少一主二从,或是一主多重。
每个server默认是主节点(master/leader),从节点(slave/follower)需要专门配置。数据复制是单向的,只能从主节点复制到从节点。一般每个server,不论机器本身内存多少,redis内存不要超过20G。
通过下述命令可以查看主从信息
>info replication
单机多配置文件模拟集群时,需要修改下述信息
- 端口号(port)
- pid文件(pidfile)
- rdb文件名(dbfilename)
- 日志文件名(logfile)
redis集群作用
- 数据冗余,避免单点redis机器宕机带来的数据丢失
- 负载均衡,通过读写分离和多个从节点,避免单一服务器承受太大访问压力
- 高可用基石
设置当前客户端是哪个server的从机。格式:slaveof host port
slaveof no one: 如果主机断开连接,可以使用该命令让自己变为主机。其他节点就可以手动连接到最新的主节点。
>slaveof host port
>slaveof 127.0.0.1 6379
>slaveof no one
可以使用slaveof命令配置主从机器,也可以在配置文件的replication部分配置主从信息。如果使用slaveof命令配置,那么从机器重启后,会自动按照配置文件恢复角色,而非依然是从机器。
如果没有配置哨兵,当master宕机恢复后,master/slave机器不变,依然保持主从复制。
当slave宕机恢复后,再配置成master的slave,会自动同步数据。
master:可写可读,slave:只读不能写
全量复制:slave启动或宕机恢复后连接master,会发送sync命令,把master数据进行一次全量复制。
增量复制:全量复制后,master的任何写操作,会增量复制到slave。
redis从2.8开始提供了sentinel(哨兵)架构来解决主服务器宕机后,选举新的主服务器的问题。哨兵模式是一个特殊的模式,哨兵是一个独立运行的进程。原理是哨兵通过发送命令,等等redis服务器响应,从而监控运行多个redis实例。
以上