Redis(2)双机备份

来源:互联网 发布:mac解压zip文件的软件 编辑:程序博客网 时间:2024/06/01 10:04

一、准备

主从IP:端口主Redis192.168.100.6:6380从Redis192.168.100.6:6381

二、主从复制

修改从Redis的配置文件
vi redis.conf

从Redis的配置文件中添加主Redis的ip和端口号
# slaveof <masterip> <masterport>#添加slaveof 192.168.100.6 6380

三、测试主从

先启动主Redis,再启动从Redis。其中,从Redis的启动界面会显示连接到主Redis,并开始同步。


!!!主Redis可以读写数据,从Redis只能读取数据,不可写入数据




四、哨兵模式

开启Redis哨兵模式,可实现当主Redis宕机后,从Redis自动转换为主Redis,保证Redis系统正常运行。
在redis目录中修改哨兵配置文件
vi sentinel.conf

修改配置文件
protected-mode no#添加默认主Redis的ip 端口和投票次数(主Redis宕机后,由剩下的从Redis进行投票选举出一个主服务器)sentinel monitor mymaster 192.168.100.6  6380 1#哨兵每5s检查Redis集群sentinel down-after-milliseconds mymaster 5000

启动哨兵
./src/redis-server ./sentinel.conf --sentinel

控制台打印 +slave slave 192.168.100.6:6381 192.168.100.6 6381 @ mymaster 192.168.100.6 6380 即192.168.100.6 6381为从Redis,192.168.100.6 6380为主Redis

五、测试哨兵

关闭主Redis,5秒后,哨兵控制台打印以下代码
65506:X 05 Jul 15:44:34.462 # +switch-master mymaster 192.168.100.6 6380 192.168.100.6 638165506:X 05 Jul 15:44:34.462 * +slave slave 192.168.100.6:6380 192.168.100.6 6380 @ mymaster 192.168.100.6 638165506:X 05 Jul 15:44:39.497 # +sdown slave 192.168.100.6:6380 192.168.100.6 6380 @ mymaster 192.168.100.6 6381

即将原来的从Redis192.168.100.6 6381 转换为主Redis,原来的主Redis192.168.100.6 6381转换为从Redis

六、Java通过哨兵访问redis

Set<String> sentinels = new HashSet<String>();// 添加哨兵IP 端口sentinels.add("192.168.100.6:26379");GenericObjectPoolConfig config = new GenericObjectPoolConfig();config.setMaxTotal(100);config.setMinIdle(10);JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels,config);Jedis jedis = null;jedis = pool.getResource();jedis.set("name", "456");String value = jedis.get("name");System.out.println(value);jedis.close();pool.close();