我们在 Master 上存一些数据,看看在 Slave 中是否已经同步了。
# Centos : 127.0.0.1:6379> set name lsgogroup OK 127.0.0.1:6379> set age 20 OK然后在 Slave 中读取数据
# Ubuntu: 127.0.0.1:6379> get name "lsgogroup" 127.0.0.1:6379> get age "20"可以看出,数据同步成功,你可以在 Master 中修改一下数据,看看 Slave 中是否会变化。
PS:如果你尝试在 Slave 中修改数据,比如执行 set name lsgozj,看看会不会提示:(error)READONLY You can’t write against a read only slave。
为什么会这样?
因为我们前面修改配置文件时设置了 slave-read-only yes,其实默认也是只读的。为什么要设置 Slave 为只读呢?因为这是为了实现读写分离:多个 Slave 专门用于客户端的读请求,而 Master 用来收集数据。
升级 Slave 为 Master:Master 不可用的情况下,停止 Master,将 Slave 的设定无效化后,Slave 升级为 Master。
就是说当 Master 不可用的时候,我们使某台 Slave 服务器不再作为从服务器,由于该台 Slave 服务器保存的数据基本上是最新的,可以把他作为 Master 来用。
通过注释前面的配置项然后从其或者在命令行运行 slaveof no one 达到将 Slave 升级为 Master。
下面关于Redis的文章您也可能喜欢,不妨参考下:
Ubuntu 16.04环境中安装PHP7.0 Redis扩展
CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题