准备工作 下载doker和下载redis镜像以及redis配置文件请自行下载 没有版本要求默认最新
- redis 常用配置文件参照
bind 127.0.0.1 #注释掉这部分,添加==》bind 0.0.0.0 ==》使redis可以外部访问
port 6380#端口号
dbfilename dump.rdb #默认rdb持久化名称
appendonly yes#redis持久化aof模式 默认是no
appendfilename "appendonly.aof" #默认aof持久化名称
protected-mode no #将本机访问保护模式设置no
daemonize no#用守护线程的方式启动
requirepass 你的密码#给redis设置密码
replicaof 192.168.206.102 6379 #如果是从库 需要配置主库的ip
masterauth 123456 #主从复制的验证密码
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
appendonly yes# aof是否开启, 需要手动设置为yes
pidfile /var/run/redis_6380.pid #pid文件
cluster-enabled yes #开启集群
cluster-config-file nodes-6380.conf #配置文件
cluster-node-timeout 15000 #集群超时时间
- 虚拟机配置
192.168.206.102:6379 | 192.168.206.102:6380 |
192.168.206.103:6379 | 192.168.206.103:6380 |
192.168.206.104:6379 | 192.168.206.104:6380 |
一.修改配置文件
1.端口6379的配置文件
#bind 127.0.0.1 #注释掉这部分,添加bind 0.0.0.0
bind 0.0.0.0 #使redis可以外部访问
port 6379#端口号
protected-mode no #将本机访问保护模式设置no
appendonly yes #aof持久化
cluster-enabled yes #开启集群
cluster-config-file nodes.conf #配置文件
cluster-node-timeout 15000 #集群超时时间
2. 端口6380的配置文件
#bind 127.0.0.1 #注释掉这部分,添加bind 0.0.0.0
bind 0.0.0.0 #使redis可以外部访问
#端口号
port 6380
pidfile /var/run/redis_6380.pid #启动pid
dbfilename dump6380.rdb #rdb持久化保存文件名
appendfilename "appendonly6380.aof" #aof持久化保存文件名
protected-mode no #将本机访问保护模式设置no
appendonly yes #aof持久化
cluster-enabled yes #开启集群
cluster-config-file nodes-6380.conf #配置文件
cluster-node-timeout 15000 #集群超时时间
3.创建文件夹将配置文件放入conf下
mkdir /data/docker/redis/{conf,data} -p
cd /data/docker/redis
二.开启redis容器
1.端口6379启动命令
# 创建并运行一个名为 myredis 的容器
docker run \
-p 6379:6379 \
-v /data/docker/redis/data:/data \
-v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true --net host \
--name myredis \
-d redis redis-server /etc/redis/redis.conf\
# 命令分解
docker run \
-p 6379:6379 \ # 端口映射 宿主机:容器
-v $PWD/data:/data \ # 映射数据目录
-v $PWD/conf/redis.conf:/etc/redis/redis.conf: \ # 挂载配置文件
--privileged=true \ # 给与doker权限 不然启动不了
--net host \ #开启网络不然后面集群访问不到
--name myredis \ # 给容器起个名字
-d redis redis-server /etc/redis/redis.conf # deamon 运行容器 并使用配置文件启动容器内的 redis-server
2.端口6380启动命令
# 创建并运行一个名为 myredis 的容器
docker run \
-p 6380:6380 \
-v /data/docker/redis/data:/data \
-v /data/docker/redis/conf/redis6380.conf:/etc/redis/redis.conf \
--privileged=true --net host \
--name myredis6380 \
-d redis redis-server /etc/redis/redis.conf\
3.确保六个redis全部启动。
开放端口 6379 6380 和redis总线端口(端口加10000) 16379 16380 四个端口
firewall-cmd --permanent --zone=public --add-port=6379/tcp #永久开放端口
firewall-cmd --permanent --zone=public --add-port=6380/tcp
firewall-cmd --permanent --zone=public --add-port=16379/tcp
firewall-cmd --permanent --zone=public --add-port=16380/tcp
firewall-cmd --reload #重启防火墙
四.开集群
1.集群 =======》 需要开启所有端口号 6379 6380===》 外加总线集群 ==》
总线端口加10000==》 16379 16380
进入一个容器执行命令 (确保所有redis都是干净的没有多余数据)
如果设置了密码或者用户名可以在 redis-cli 后面加 -u name -a password 没有就不加
注意:中间会让输入yes,不能只输入y
redis-cli --cluster create 192.168.206.102:6379 192.168.206.102:6380 192.168.206.103:6379 192.168.206.103:6380 192.168.206.104:6379 192.168.206.104:6380 --cluster-replicas 1
2.进入任意一个服务查看集群信息
cluster nodes
3. 连接集群数据库
redis-cli -c -h 192.168.0.111 -p 7001
有密码的输入密码没有的直接使用