就写给自己以后忘记的时候看看,不一定正确
安装redis
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
cd redis-5.0.3
make
cd src
cp redis-cli redis-sentinel redis-server /usr/sbin
#配置文件模板在redis-5.0.3目录里面
cd ../
cp redis.conf sentinel.conf /etc/ #方便等下运行的时候,指定配置文件
搭建master-slave模式
192.168.3.27 (master)
192.168.3.26 (slave)
修改master上的配置文件
vim /etc/redis.conf
然后在文件里面修改一下配置
bind 127.0.0.1====>bind 0.0.0.0 #方便其他机器访问
daemonize no====>daemonize yes #以后台方式运行
logfile ""====>logfile "/var/log/redis.conf" #指定日志文件,方便追踪排查
然后运行
redis-server /etc/redis.conf
修改slave主机上的配置文件
修改和master一样的设置后,在redis.conf里面增加
replicaof 192.168.3.27 6379 #指定本机的master为192.168.3.27
然后运行
redis-server /etc/redis.conf
查看运行结果


验证

在master上设置一个key后,在slave上也有相应的key,默认情况该模式下,主服务器上可以进行读写,从服务器只能读,如:

但是如果在从服务器的配置文件修改配置

将replica-read-only的值yes改成no,重启后,就可以读写
ps:从服务器配置成可以写入,但是写入的值并不会同步到主服务器上
同步机制

- 当slave第一次连上master时,会进行一次完整同步
- 当master上写入新的值时,slave会向master请求一次partial resynchronization,根据offset值,只进行增量同步
- 当master重启之后,slave向master请求增量同步时,由于和之前的id不一致,所以会重新进行一次完整同步
网友评论