姜堰区住房和城乡建设局网站,wordpress多页面统一头部,宁波网页开发费用,专业的高密做网站的总结/朱季谦
在日常开发或者编程当中#xff0c;经常需要用到redis集群#xff0c;若是按照传统的方式#xff0c;一个机器一个机器搭建#xff0c;难免过于繁琐#xff0c;故而可以通过dock er-compose编排方式#xff0c;快速搭建。我在搭建过程当中#xff0c;将操作…总结/朱季谦
在日常开发或者编程当中经常需要用到redis集群若是按照传统的方式一个机器一个机器搭建难免过于繁琐故而可以通过dock er-compose编排方式快速搭建。我在搭建过程当中将操作记录下来方便以后需要搭建三主三从节点时可以基于以前的成功经验快速搭建起来。
一、环境准备
准备三台机器在每台机器上计划安装一个Redis主节点和一个Redis从节点。
机器Redis节点节点端口192.168.31.130redis-master/redis-slave6379/6380192.168.31.131redis-master/redis-slave6379/6380192.168.31.132redis-master/redis-slave6379/6380
二、文件准备
2.1、创建Redis节点目录
分别在192.168.31.130、192.168.31.131、192.168.31.132机器上执行以下命令创建Redis主从节点文件目录——
for dir in redis-master/data redis-slave/data; do mkdir -p /opt/docker/redis-cluster/$dir;done2.2、创建节点配置文件redis.conf
分别在192.168.31.130、192.168.31.131、192.168.31.132机器上的/opt/docker/redis-cluster/redis-master/与/opt/docker/redis-cluster/redis-slave/目录下创建一个redis.conf文件文件内容包括以下属性——
port 6379 #指定 Redis 服务器监听的端口号这是客户端与 Redis 服务器进行通信的端口。
save 900 1#在给定时间间隔内有多少次写操作时Redis 将执行自动的快照生成 RDB 文件。
save 300 10
save 60 10000
dbfilename dump.rdb#指定生成的 RDB 文件的名称。
dir /data #指定持久化文件的存储目录。
appendonly yes #启用 AOFAppend-Only File持久化模式。
appendfilename appendonly.aof #指定 AOF 文件的名称。
appendfsync everysec #控制 AOF 缓冲区的内容何时同步到硬盘。这里的选项 everysec 表示每秒同步一次
cluster-enabled yes #启用 Redis 集群功能。
cluster-config-file nodes.conf #指定保存集群拓扑信息的配置文件名。
cluster-node-timeout 5000 #设置节点间通信的超时时间单位为毫秒。快捷指令直接在linux运行——
for dir in redis-master redis-slave; do if [ $dir redis-master ]; thenport6379elif [ $dir redis-slave ]; thenport6380fi
echo port $port
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data
appendonly yes
appendfilename appendonly.aof
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000 /opt/docker/redis-cluster/$dir/redis.conf;done运行完成后在/opt/docker/redis-cluster/redis-master/以及/opt/docker/redis-cluster/redis-slave/生成一个data目录和一个redis.conf文件—— redis.conf文件里内容就是前面设置的。
三、编写docker-compose.yml编排文件
分别在三台机器的/opt/docker/redis-cluster/目录下创建docker-compose.yml文件内容如下
version: 3.1
services:redis-master:image: redis:5.0.8container_name: redis-masterrestart: alwaysnetwork_mode: host volumes:- /opt/docker/redis-cluster/redis-master/data:/data- /opt/docker/redis-cluster/redis-master/redis.conf:/usr/local/etc/redis/redis.confcommand: [redis-server,/usr/local/etc/redis/redis.conf]redis-slave:image: redis:5.0.8container_name: redis-slaverestart: alwaysnetwork_mode: host volumes:- /opt/docker/redis-cluster/redis-slave/data:/data- /opt/docker/redis-cluster/redis-slave/redis.conf:/usr/local/etc/redis/redis.confcommand: [ redis-server,/usr/local/etc/redis/redis.conf ]完成后执行指令docker-compose up -d—— 执行指令docker ps -a查看一下容器是否已经正常运行如下现实证明没有问题—— 四、执行指令组建redis集群
4.1、任意一台机器上执行以下指令进入到docker容器当中——
docker exec -it redis-master bash #redis-master对应的是docker ps -a查看到的容器名redis-master4.2、创建集群
redis-cli --cluster create 192.168.31.130:6379 192.168.31.130:6380 192.168.31.131:6379 192.168.31.131:6380 192.168.31.132:6379 192.168.31.132:6380 --cluster-replicas 1执行完成后打印日志如下—— 执行指令后会出现提示“Can I set the above configuration? (type yes to accept):”这里输入yes回车。出现以下情况话就是已经成功创建redis集群了—— 可以通过以下指令进入到redis客户端查看集群情况——
roothadoop1:/data# redis-cli -c -h 192.168.31.130 -p 6379然后执行指令cluster info查看集群状况显示cluster_state:ok则表示集群已经正常创建。 当然可以进一步通过cluster nodes指令查看各节点状况已经是三主三从的集群状况了—— 以上就是整个集群搭建过程。
若是之前没有玩过Docker的朋友可以参考我之前的一篇Docker搭建记录文章《CentOS7安装Docker遇到的问题笔记》