一、基于Docker启动一个Redis服务
// 拉去镜像
docker pull redis
// -d 以后台的方式运行
// -name 给这个实例起名为"redis"
docker run -d --name redis redis
// 进入刚才启动的、名为"redis"的Docker实例,并执行"redis-cli"命令
docker exec -it redis redis-cli
// 测试redis服务:1. 先执行set操作
set key "hello, redis"
// 测试redis服务:2. 执行get操作,查看返回值,应该返回"hello, redis"
get key
二、实现Redis主从模式
// 启动一个名为"redis-slave"的实例
docker run -d --name redis-slave redis
// 查看刚才启动的2个实例的IP地址(等会你还会回来看我)
docker inspect redis | grep -i ipaddress
docker inspect redis-slave | grep -i ipaddress
// 进入"redis-slave"容器
docker exec -it redis-slave redis-cli
// 查看当前实例的角色是主还是从(此时2个实例返回的应该都是"master")
info replication
// 在"redis-slave"中设置当前实例为另一个实例的从节点
// 另一个实例通过IP + 端口的形式定位
// IP:是刚才通过"docker inspect"那一步得到的
// 端口:刚才启动实例时使用的是默认值(6379)
slaveof 172.17.0.2 6379
// 在"redis"实例中执行的话,可以看到有一台slave
// 在"redis-slave"实例中执行的话,可以看到角色变为"slave"了
info replication
三、实现Redis哨兵模式
// 启动一个名为"redis-sentinel"的实例
docker run -d --name redis-sentinel redis
// 进入"redis-sentinel"容器
docker exec -it redis-sentinel /bin/bash
// 写入配置文件
echo '
# 开启保护模式
protected-mode no
# 监控master节点,当有一台机器判定为主观下线时就执行主从切换
sentinel monitor redis-master 172.17.0.2 6379 1
' > sentinel.conf
// 启动哨兵
redis-sentinel ./sentinel.conf
四、实现Redis集群模式
待补充
五、参考文献
- 你管这破玩意叫哨兵?