1.redis主从+哨兵的原理
首先,我们要知道一致性哈希算法,这个算法原理是,当我们通过哈希算法计算出key的值,会通过顺时针方向,将数据存储到最近的redis服务器,也有可能算出来的
哈希值正好是redis服务器的地址值.
reids主从+哨兵的实现,是通过我们将数据发送给哨兵,由于哨兵有主服务器的信息,哨兵将会把我们的数据发送至主服务器.如果我们直接将数据发送至主服务器,如果主服务器宕机,哨兵将会再次选举出一个主服务器,比如我们刚开始连接7000端口的主服务器,主服务器宕机后哨兵选举出的主服务器可能是7001.这时我们就需要反复修改我们的代码,非常的麻烦.
2.准备一个主服务器和两个从服务器
我们这里以一主两从为例
启动主服务器
# --net=host 容器直接使用宿主机的端口,不需要做端口映射
docker run -d --name redis6379 --net=host --restart=always redis
# 进入容器,运行redis客户端
docker exec -it redis6379 redis-cli
# 查看集群信息,默认是主服务器
> info replication
启动两个从服务器
# 启动redis6380容器,作为 redis6379 的从服务器启动
# --port 和 --slaveof 是 redis-server 命令的参数
docker run -d --name redis6380 --net=host --restart=always redis \
redis-server --port 6380 --slaveof 192.168.64.150 6379
# 启动redis6381容器,作为 redis6379 的从服务器启动
docker run -d --name redis6381 --net=host --restart=always redis \
redis-server --port 6381 --slaveof 192.168.64.150 6379
# 查看三个 redis 服务的角色
docke