Redis主从同步

环境:WIN10  Docker Desktop

部署命令:/E windows盘符E

docker run -p 6003:6379 --name redis_v3 -v /E/Docker/redis_3/conf/redis.conf:/usr/local/etc/redis/redis.conf -d --requirepass "认证密码"  --privileged=true redis:v3  redis-server /etc/redis/redis.conf
docker run -p 6002:6379 --name redis_v2 -v /E/Docker/redis_2/conf/redis.conf:/usr/local/etc/redis/redis.conf -d --requirepass "认证密码"  --privileged=true redis:v2  redis-server /etc/redis/redis.conf
docker run -p 6001:6379 --name redis_v1 -v /E/Docker/redis_1/conf/redis.conf:/usr/local/etc/redis/redis.conf -d --requirepass "认证密码"  --privileged=true  redis:v1 redis-server /etc/redis/redis.conf

1 .windows上不能添加data文件夹映射   否则从库提示 Failed load the MASTER synchronization DB from.. 

2. windows上手动创建redis.conf文件,否则映射出来是文件夹

3. 一定要加上  redis-server /etc/redis/redis.conf 否则修改配置文件不起作用(requirepass 密码)

4.从redis官网下载的配置文件  1)屏蔽bind   2) 把protected-mode属性设置no

错误示例

docker run -p 6003:6379 --name redis_v3 -v /E/Docker/redis_3/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /E/Docker/redis_3/data:/data -d redis:v3  --requirepass "123456" 
docker run -p 6002:6379 --name redis_v2 -v /E/Docker/redis_2/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /E/Docker/redis_2/data:/data -d redis:v2  --requirepass "123456" 
docker run -p 6001:6379 --name redis_v1 -v /E/Docker/redis_1/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /E/Docker/redis_1/data:/data -d redis:v1  --requirepass "123456" 

主从查看 设置命令 

设置主库地址 SLAVEOF 172.17.0.4 6379

查看从库 info replication

docker inspect 容器ID 查看容器IP

 

master库如果设置密码:

 在从库redis.conf文件添加 masterauth 主库密码 

 

 

SLAVEOF NO ONE  从服务器变主服务器

 

 

redis 哨兵模式

(1) 增加端口映射  docker run -v /d/docker/redis_1/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -d -p 6001:6379 -p 26731:26739 --restart=always --name redis_v1 redis:v1  redis-server /usr/local/etc/redis/redis.conf    可以把sentinel.conf映射到本地 方便修改

(2)根目录创建sentinel.conf文件 ,配置如下图 执行启动命令redis-sentinel sentinel.conf

port 26371   #端口号
dir /data      #路径
daemonize yes  #后台运行
sentinel monitor mymaster 172.17.0.5 6379 2   #主服务器IP 和端口  2指从服务器认为主节点失效的个数  一般  从服务器个数/2 +1
sentinel auth-pass mymaster 123456789   #主服务器密码

 

主服务器宕机重启变为从服务器 需要重新执行redis-sentinel sentinel.conf

 

2021-6-24

用docker desktop开三个端口哨兵模式虽然搭建成功了 ,但是代码一直连接不上

又开始搭环境 , 三台虚拟机 172.22.37.177(master) ,172.22.46.167(slave),172.22.33.22(slave)

标红色的是sentinel.conf的配置 其余的貌似自动生成的

FreeRedis连接Demo  貌似只需要第一个参数需要加密码,后面加密码会提示错误

 

posted @ 2021-05-14 16:14  瓜皮oo  阅读(63)  评论(0)    收藏  举报