redis主从与mysql主从不同的是:redis不需要事先吧数据同步过去,配置好后,以前的数据直接会同步。

首先在linux系统上下载redis,分别创建这些文件:

6379.log dump-6379.rdb 6380.log dump-6380.rdb 6381.log dump-6381.rdb

 

之后再config目录下创建:

分别创建一主双从,里面的配置如下:

分别表示:logfile(日志的路径)

daemonize(守护线程开启)

rdbcompression(缓存开启)

dbfilename(缓存存放文件名)

主的:
bind 0.0.0.0
port 6379
logfile "6379.log"
dbfilename "dump-6379.rdb"
daemonize yes
rdbcompression yes


从的:
bind 0.0.0.0
port 6380
logfile "6380.log"
dbfilename "dump-6380.rdb"
daemonize yes
rdbcompression yes
slaveof 127.0.0.1 6379



启动命令用./redis-server config/slave-6381.conf 

和./redis-server config/master-6739.conf

启动后用ps -rf|grep redis可以看到如下效果:

接下来测试一下:

启动主服务器:./redis-cli -p 6378  

退出之后启动从服务器:./redis-cli -p 6380,如图可以看到从服务器只可以读,不可以写入

 

接下来加入sentinel(哨兵):

加入配置文件sentinel_6379.conf,sentinel_6380.conf,sentinel_6381.conf

sentinel monitor:代表监控,master代表服务器名称,可以自定义,127.0.0.1代表监控的主服务器,6379代表端口,2代表有两个或者以上的哨兵认为主服务不可以用时候才可以failover。

down-after-milliseconds:制定master 30000mm没有反应则表示主服务不可用。

parallel-syncs:表示主从切换的时候只有 1个slave可以切换。

主:
port 6379
daemonize yes
logfile "/usr/redis/sentinel_6379.log"
sentinel monitor master 127.0.0.1 6379 2
sentinel down-after-milliseconds master 30000
sentinel parallel-syncs master 1
sentinel failover-timeout master 180000

从:
port 6380
daemonize yes
logfile "/usr/redis/sentinel_6380.log"
sentinel monitor master 127.0.0.1 6379 2
sentinel down-after-milliseconds master 30000
sentinel parallel-syncs master 1
sentinel failover-timeout master 180000

启动sentinel用:./redis-server sentinel_6379.conf --sentinel

注意:启动顺序是先启动主redis进程,在启动从redis进程,最后在启动三个哨兵进程。

更多推荐