《redis集群sentinel主从复制》笔记

Sentinel分配的端口为:26379、26380、26381、26382

Master配置:

daemonize yespidfile /home/mayi/test/redis/data/redis-master1.pidport 6379tcp-backlog 511timeout 0tcp-keepalive 0loglevel noticelogfile ""databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./slave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100maxmemory 50mbmaxmemory-policy allkeys-lruappendonly noappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yes

Slave配置文件:

#是否后台运行daemonize yespidfile /home/mayi/test/redis/data/redis-slave1_1.pidport 7379tcp-backlog 511timeout 0tcp-keepalive 0loglevel noticelogfile ""databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./slaveof  127.0.0.1 6379slave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100 maxclients  10000appendonly noappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yesSentinel配置文件:

#学习网址:#id2port 26379daemonize yeslogfile "/home/mayi/test/redis/logs/sentinel.log"#6379sentinel monitor mymaster 127.0.0.1 6379 2sentinel down-after-milliseconds mymaster 60000sentinel failover-timeout mymaster 180000sentinel parallel-syncs mymaster 1#6380sentinel monitor master_6380 127.0.0.1 6380 4sentinel down-after-milliseconds master_6380 10000sentinel failover-timeout master_6380 180000sentinel parallel-syncs master_6380 5#6381sentinel monitor master_6381 127.0.0.1 6381 4sentinel down-after-milliseconds master_6381 10000sentinel failover-timeout master_6381 180000sentinel parallel-syncs master_6381 5

PS:具体可以下载demo案例查看conf目录下的配置文件

然后分别启动Master、Slave、Sentinel 即可。

启动后,,可以用redis-cli 连接,输入info命令查看相应信息等。其他操作可以查看

下面是Jedis操作Sentinel,代码如下:

package com.sondon.mayi.redis.test;/** * @Project : JRedisHello * @Package : com.sondon.mayi.redis * @Class : RedisClusterTest.java * @Company 广州讯动网络科技有限公司 * @Author : 蔡文锋 * @DateTime:2015年5月6日 下午2:33:54 * @Blog: * @Description : {} */import java.util.HashSet;import java.util.Set;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisSentinelPool;/** * * @Project : JRedisHello * @Package : com.sondon.mayi.redis.test * @Class : JedisSentinelPoolTest.java * @Company 广州讯动网络科技有限公司 * @Author : 蔡文锋 * @DateTime:2015年5月13日 下午5:25:18 * @Blog: * @Description : {} */public class JedisSentinelPoolTest {public static void main(String[] args) {Set<String> sentinels = new HashSet<String>();sentinels.add(new HostAndPort("127.0.0.1", 26379).toString());sentinels.add(new HostAndPort("127.0.0.1", 26380).toString());sentinels.add(new HostAndPort("127.0.0.1", 26381).toString());sentinels.add(new HostAndPort("127.0.0.1", 26382).toString());JedisSentinelPool master1_sentinelPool = new JedisSentinelPool("mymaster",sentinels);JedisSentinelPool master2_sentinelPool=new JedisSentinelPool("master_6380", sentinels);JedisSentinelPool master3_sentinelPool=new JedisSentinelPool("master_6381", sentinels);System.out.println("Current master1: "+ master1_sentinelPool.getCurrentHostMaster().toString());System.out.println("Current master2: "+ master2_sentinelPool.getCurrentHostMaster().toString());System.out.println("Current master3: "+ master3_sentinelPool.getCurrentHostMaster().toString());//System.out.println("num_active :"+master1_sentinelPool.getNumActive());//System.out.println("num_active :"+master2_sentinelPool.getNumActive());//System.out.println("num_active :"+master3_sentinelPool.getNumActive());System.out.println("isClosed :"+master1_sentinelPool.isClosed());//存Jedis master = master1_sentinelPool.getResource();master.set("username", "liangzhichao");//释放mastermaster1_sentinelPool.returnResourceObject(master);//取Jedis master2 = master1_sentinelPool.getResource();String value = master2.get("username");System.out.println("username: " + value);master2.close();master1_sentinelPool.close();master2_sentinelPool.close();master3_sentinelPool.close();master1_sentinelPool.destroy();master2_sentinelPool.destroy();master3_sentinelPool.destroy();}}

结果显示:

一个人骑行,孤单却内省;一群人骑行,壮观而有力。

《redis集群sentinel主从复制》笔记

相关文章:

你感兴趣的文章:

标签云: