基于腾讯云,docker 系统
单节点部署
1、拉取镜像
docker pull redis
2、创建挂载目录
mkdir -p /home/redis/data /home/redis/conf
3、获取Redis的配置文件
wget http://download.redis.io/redis-stable/redis.conf
4、修改配置文件
port 6379
#密码
requirepass 123456
#daemonize yes会和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no
# 任何主机都可以连接到redis
bind 0.0.0.0
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no
3、启动节点
docker run -p 6379:6379 \
-v /home/redis/conf/data:/data \
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name redis \
-d redis redis-server /etc/redis/redis.conf
4、进入 redis
docker exec -it redis redis-cli -p 6379 -a 123456(密码)
5、查看信息
info replication
主从部署
参考文章 https://zhuanlan.zhihu.com/p/647155496
上面的服务可以看作主节点,接下来配置从节点
1、创建挂载目录
mkdir -p /home/redis_6380/data /home/redis_6380/conf
3、获取Redis的配置文件
wget http://download.redis.io/redis-stable/redis.conf
4、修改配置文件
port 6380
#密码
requirepass 123456
#当主机设置密码之后,要配置这个参数,否则不能同步
masterauth 123456
#daemonize yes会和docker run中-d参数冲突,会导致容器一直启动失败
daemonize no
# 任何主机都可以连接到redis
bind 0.0.0.0
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。
protected-mode no
3、启动节点
docker run -p 6380:6380 \
-v /home/redis_6380/conf/data:/data \
-v /home/redis_6380/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name redis_6380 \
-d redis redis-server /etc/redis/redis.conf
4、进入 redis
docker exec -it redis_6380 redis-cli -p 6380 -a 123456(密码)
5、查看主机 ip,这个 ip 不是机器 ip
[root@VM-4-3-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bfe882016b1a redis "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 6379/tcp, 0.0.0.0:6380->6380/tcp, :::6380->6380/tcp redis_6380
d74711c1a5a4 redis "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
[root@VM-4-3-centos ~]# docker inspect d74711c1a5a4
6、 从节点绑定到主节点
[root@VM-4-3-centos ~]# slaveof 172.17.0.2 6379
或者修改从节点配置文件
replicaof 172.17.0.2 6379
7、查看主节点和从节点信息
这样说明配置成功
=======================================================================
docker 删除 redis 节点
[root@VM-4-3-centos conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc47203bf9b7 redis "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 6379/tcp, 0.0.0.0:6380->6380/tcp, :::6380->6380/tcp redis_6380
d74711c1a5a4 redis "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
[root@VM-4-3-centos conf]# docker stop fc47203bf9b7
fc47203bf9b7
[root@VM-4-3-centos conf]# docker rm redis_6380
redis_6380
docker stop 后面跟的值是要删除那个节点的 CONTAINER ID 值
查看 redis 版本
docker exec -it redis redis-server -v