redis多实例、sentinel集群
实验说明:
192.168.1.5 配置三个redis实例
192.168.1.6配置两个sentinel实例
1.5配置:
[root@ml ~]# mkdir /etc/redis/
[root@ml ~]# cd /etc/redis/
[root@ml redis]# cp /etc/redis.conf redis1.conf
[root@ml redis]# cp /etc/redis.conf redis2.conf
[root@ml redis]# vim /etc/redis.conf
bind 192.168.1.5
daemonize yes
[root@ml redis]# mkdir /var/lib/redis6380/
[root@ml redis]# chown redis. /var/lib/redis6380
[root@ml redis]# vim redis1.conf
修改: port 6379 改为: port 6380 修改: daemonize no 改为: daemonize yes 修改: pidfile /var/run/redis_6379.pid 改为: pidfile /var/run/redis_6380.pid 修改: logfile /var/log/redis/redis.log 改为: logfile /var/log/redis/redis6380.log 修改: dir /var/lib/redis 改为: dir /var/lib/redis6380
修改:
slaveof <masterip> <masterport>
改为:
slaveof 192.168.1.5 6379 #我指定了一个master
[root@ml redis]# mkdir /var/lib/redis6381
[root@ml redis]# chown redis /var/lib/redis6381
[root@ml redis]# vim redis2.conf
修改: port 6379 改为: port 6381 修改: daemonize no 改为: daemonize yes 修改: pidfile /var/run/redis_6379.pid 改为: pidfile /var/run/redis_6381.pid 修改: logfile /var/log/redis/redis.log 改为: logfile /var/log/redis/redis6381.log 修改: dir /var/lib/redis 改为: dir /var/lib/redis6381
修改:
slaveof <masterip> <masterport> 改为:
slaveof 192.168.1.5 6379 #我指定了一个master
[root@ml redis]# redis-server /etc/redis.conf
[root@ml redis]# redis-server redis1.conf
[root@ml redis]# redis-server redis2.conf
[root@ml redis]# netstat -atunp | grep redis
tcp 0 0 192.168.1.5:6379 0.0.0.0:* LISTEN 67652/redis-server tcp 0 0 127.0.0.1:6380 0.0.0.0:* LISTEN 67660/redis-server tcp 0 0 127.0.0.1:6381 0.0.0.0:* LISTEN 67665/redis-server tcp 0 0 192.168.1.5:6379 127.0.0.1:37137 ESTABLISHED 67652/redis-server tcp 0 0 127.0.0.1:36773 192.168.1.5:6379 ESTABLISHED 67660/redis-server tcp 0 0 127.0.0.1:37137 192.168.1.5:6379 ESTABLISHED 67665/redis-server tcp 0 0 192.168.1.5:6379 127.0.0.1:36773 ESTABLISHED 67652/redis-server
测试:
[root@ml redis]# redis-cli -p 6379
127.0.0.1:6379> info Replication
# Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6380,state=online,offset=407,lag=0 slave1:ip=127.0.0.1,port=6381,state=online,offset=407,lag=0 master_repl_offset:407 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:406
停止实例:
redis-cli -p 6380 shutdown
1.6配置(sentinel集群):
[root@6 ~]# mkdir /etc/redis/
[root@6 ~]# cd /etc/redis/
简单点配置!
[root@6 redis]# vim /etc/redis-sentinel.conf
sentinel monitor mymaster 192.168.1.5 6279 2
[root@6 redis]# grep -v "^#\|^$" /etc/redis-sentinel.conf > 26380.conf
[root@6 redis]# grep -v "^#\|^$" /etc/redis-sentinel.conf > 26381.conf
[root@6 redis]# vim 26380.conf
port 26380 dir /tmp sentinel monitor mymaster 192.168.1.5 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 logfile /var/log/redis/sentinel26380.log
[root@6 redis]# touch /var/log/redis/sentinel26380.log
[root@6 redis]# chown redis chown redis /var/log/redis/sentinel6380.log
[root@6 redis]# vim 26381.conf
port 26381 dir /tmp sentinel monitor mymaster 192.168.1.5 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 logfile /var/log/redis/sentinel26381.log
[root@6 redis]# touch /var/log/redis/sentinel26381.log
[root@6 redis]# chown redis chown redis /var/log/redis/sentinel6381.log
启动:
[root@6 redis]# redis-sentinel /etc/redis-sentinel.conf &
[root@6 redis]# redis-sentinel 26380.conf &
[root@6 redis]# redis-sentinel 26381.conf &
[root@6 redis]# netstat -atunp | grep redis
tcp 0 0 0.0.0.0:26379 0.0.0.0:* LISTEN 60500/redis-sentine tcp 0 0 0.0.0.0:26380 0.0.0.0:* LISTEN 60535/redis-sentine tcp 0 0 0.0.0.0:26381 0.0.0.0:* LISTEN 60538/redis-sentine tcp 0 0 192.168.1.6:39588 192.168.1.5:6379 ESTABLISHED 60535/redis-sentine tcp 0 0 192.168.1.6:39626 192.168.1.5:6379 ESTABLISHED 60538/redis-sentine tcp 0 0 192.168.1.6:39624 192.168.1.5:6379 ESTABLISHED 60538/redis-sentine tcp 0 0 192.168.1.6:39590 192.168.1.5:6379 ESTABLISHED 60535/redis-sentine tcp6 0 0 :::26379 :::* LISTEN 60500/redis-sentine tcp6 0 0 :::26380 :::* LISTEN 60535/redis-sentine tcp6 0 0 :::26381 :::* LISTEN 60538/redis-sentine
[root@6 redis]# redis-cli -p 26380
127.0.0.1:26380> info Sentinel
sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.1.5:6379,slaves=2,sentinels=2
发现看到2个slave、和2个sentinel
关闭实例:
redis-cli -p 26380 shutdown