Redis相关工具
相关工具都以二进制文件的形式存放在redis的src目录下。
- ./redis-server:redis的服务端。
- ./redis-cli:客户端
- ./redis-benchmark:用于性能测试。
- ./redis-check-dump:用来修复dump.rdb文件。
- ./redis-sentinel:用于集群管理。
Redis主从模式
就像mysql一样,redis也可以也支持主从同步。主从结构一是为了冗余备份,同时也可以提升读写的性能,多台服务器来承担读取的压力(从服务器一般只读,为了防止数据误操作)。
- 原理:从服务器向主服务器发出SYNC指令,主服务器接收到指令后,会创建一个子进程来进行持久化,将数据写入到RDB中,在持久化为完成前,数据都缓存到内存中。持久化完成后,将RDB文件发送给从服务器。从服务器将文件存储到磁盘上,再读取到内存,然后主服务器再将这段时间内缓存的写指令发送给redis服务器。
- 配置:
1.修改主&从配置文件的监听端口,改为0.0.0.0,监听内网。
2.protected-mode no #将加密保护关闭,(若未再原始文件上修改,忽略这一步)。
3.从服务器上添加master的内网ip和端口。
slaveof 192.168.178.144 6379
4.重启三台服务器。
5.测试主从,在三台服务器上执行cli后ping测试,在输入键值对,在主服务器上查询(info replication)
Redis哨兵模式
哨兵模式是用于监控redis集群中master状态的工具,是一种高可用的解决方案。当检查到master异常时,会进行master-slave切换,切换后master的配置文件都会i发生相应的变化。
- 工作原理:sentine(哨兵)每秒向master发送一个ping命令。
- 若master回复的时间距离上一次回复的时间超过设定的值,则进行master和slave的切换。
- 配置:
1.每台服务器上修改配置文件:绑定0.0.0.0
2.每台机器上修改sentinel.conf配置文件。
[yiki@ redis] vim sentinel.conf
sentinel monitor mymaster 192.168.178.144 6379 2 #当集群中有2个sentinel认为master死了时,
#才能真正认为该master已经不可用了。
# (slave上面写的是master的ip,master写自己ip)
sentinel down-after-milliseconds mymaster 3000 #单位毫秒
sentinel failover-timeout mymaster 10000 #若sentinel在该配置值内未能完成failover(故障转移)
#操作(即故障时master/slave自动切换),则认为本次
#failover失败。
protected-mode no #关闭加密模式--新添加到sentinel配置文件中
- 每台服务器启动哨兵模式。
[yiki@ ~] ./redis/src/redis-sentinel sentinel.conf
* 托要放到后台执行的话,在末尾加上一个“&”