前言:打算整理一下redis使用分布式锁的方案,但是家里没有环境,刚好最近新搞了一台群辉,就用群辉来部署一个集群来做测试环境。
1,安装Docker
通过套件中心,在所有套件中找到Docker,然后点击安装,下图是安装后的截图:
2,下载镜像
打开Docker管理页面,在【注册表】菜单中搜索redis:
(作用与docker search命令相似)
选择需要获取的版本
(与通过docker pull下载镜像相似)
选择后可以通过注册表查看:
3,启动容器前准备工作
-
外挂数据目录和配置文件
由于在一台机器上,并且准备网络使用host模式所以需要对不同节点使用不同conf文件:
配置文件示例:
# 绑定IP地址,主机实际IP
bind 127.0.0.1 192.168.0.110
# 端口号
port 7001
# 日志文件目录
logfile /data/redis/redis.log
# 数据文件目录
dir /data/redis
# 开启集群模式
cluster-enabled yes
#每一个集群节点都有一个配置文件,这个文件是不能手动编辑的。确保每一个集群节点的配置文件不通
cluster-config-file nodes.conf
#集群节点的超时时间,单位:ms,超时后集群会认为该节点失败
cluster-node-timeout 5000
#为每一个集群节点指定一个pid_file
pidfile /var/run/redis.pid
-
网络
此处创建网络相当于集群内部网络,如需要外部访问需要proxy或者直接使用host。
因为测试用,所以我直接选择使用host。
4,启动容器
打开【映像】菜单,选中镜像然后点击【启动】按钮:
命名后选择【高级设置】:
在【存储空间】中配置外挂配置文件、日志和数据目录:
【网络】中选择准备好的网络或者直接使用host:
如果使用其他模式:
【端口】设置中设置映射端口(如在【网络】中选择HOST,则不需要设置,直接使用相应端口):
其他模式:
【环境】中配置启动命令:
启动时指定容器中配置文件路径:
# 此处redis的配置文件路径是/usr/local/etc/redis/redis.conf,则:
redis-server /usr/local/etc/redis/redis.conf
选择【应用】,返回上一个页面后点击【下一步】:
点击【完成】创建容器。
成功运行后,创建其他节点:
选中已有容器,选择【复制设置】
修改名称后,点击【应用】则可复制一个同样配置的容器。
复制成功后,选择【编辑】进行修改
在网络使用host模式的时候,仅需要修改配置文件和数据目录路径就行:
如果不是host模式:
重复复制到需要的数量。
5,创建集群
根据网络配置,查出每个容器的IP,然后点开其中一个容器,在详情界面选择TAB【终端机】,打开bash,输入创建集群命令:
(注意:网络若经过防火墙等防护设备,则需要开放相应的端口,例如:端口为7001,则集群通信端口为17001。其余节点以此类推【就是端口数字+10000】。)
# 指定每个master至少一个从节点
redis-cli --cluster create 192.168.0.110:7001 192.168.0.110:7002 192.168.0.110:7003 192.168.0.110:7004 192.168.0.110:7005 192.168.0.110:7006 192.168.0.110:7007 --cluster-replicas 1
# 示例:
# redis-cli --cluster create 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379 172.19.0.8:6379 --cluster-replicas 1
输入【yes】,进行下一步
出现下图信息,则表明集群创建成功。
接下里就可以通过相应的外部端口进行访问了。