一、基於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集羣模式
待補充
五、參考文獻
- 你管這破玩意叫哨兵?