可用于测试开发场景 下载redis wget https://github.com/redis/redis/archive/5.0.10.tar.gz 解压到三个文件夹, redis-1, redis-2, redis , 参考这里 在本机上配置哨兵模式, 重点是使用不同的端口 redis服务 redis端口 哨兵端口 主从 redis-1 6379 26379 主节点 redis-2 6380 26380 从节点 redis /redis-3/sentinel.conf, 如下 port 26381 // 哨兵端口 daemonize yes // 开启守护进程 sentinel monitor mymaster /redis-3/src/redis-server ./redis-3/redis.conf > /dev/null 2>&1 & # 启动哨兵 . /redis-3/src/redis-sentinel ./redis-3/sentinel.conf # 关闭 redis .
0000000000000000000000000000000000000003 --appendonly yes --cluster-announce-ip 172.18.0.4docker run -d --name redis /redis_2:/data networks: - redis-cluster redis-3: image: redis command: redis-server /usr/local redis-cluster networks: redis-cluster: external: true修改docker-compose.yaml文件中的配置 将services节点下的redis
172.28.0.16:6379 # 查看redis集群概况,加-c 是集群,不加-c是单机 redis-cli -c 测试集群数据写入 测试突发主节点瘫痪 # 到宿主主机命令行控制台,手动控制 redis -3容器暂停,达到节点瘫痪 docker stop redis-3 此时,redis-4从机,升为主机,代理原来主机的工作任务,由此实现高可用 总结 在未来,使用了虚拟化服务之后,所有技术都会慢慢的变得简单起来
alpine3.11 redis-server /etc/redis/redis.conf 第三个服务: docker run -p 6373:6379 -p 16373:16379 --name redis 演示高可用 首先向redis集群set值 可以看到,数据保存在redis-3这个服务中,接下来手动停止这个服务 获取设置进去的值 数据从redis-4服务获取到,redis-4服务是redis
docker-entrypoint.s…" 58 seconds ago Up 57 seconds 0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->16379/tcp redis Redirected to slot [15495] located at 172.38.0.13:6379 OK 172.38.0.13:6379> 发现a值设置在了172.38.0.13容器上,然后我们试着去停掉redis -3容器的服务,然后再次get,看一下结果 get值 172.38.0.13:6379> get a "b" 172.38.0.13:6379> 停止redis-3容器里的redis服务 docker stop redis-3 再次取值 172.38.0.13:6379> get a Could not connect to Redis at 172.38.0.13:6379: Host is unreachable
redis.conf \ -d -p 8002:8002 redis:5.0.12 redis-server /etc/redis/redis.conf sudo docker run --name redis
812ae8ccf55d8994f1f9d30a20f6cff42fb24b4a 192.168.81.230:6380 b61b8d0421b94b9de7267dda6c6f401a42622047 192.168.81.210:6380 2.建议在记事本里准备好命令 redis 同步redis-4 192.168.81.230:6381> CLUSTER REPLICATE 6b6ca5d58187ecbf0bff15d71a5789f4aa78cfa2 redis-4同步redis
redis/redis.conf; [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -p 6373:6379 -p 16373:16379 --name redis docker-entrypoint.s…" 29seconds ago Up 28seconds 0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->16379/tcp redis
172.28.0.12 redis:6.0.5 redis-server /etc/redis/redis.conf docker run -p 6373:6379 -p 16373:16379 --name redis
-alpine3.11 redis-server /etc/redis/redis.conf # 容器3 docker run -p 6373:6379 -p 16373:16379 --name redis
-v /data/redis-2:/usr/local/redis redis redis-server /usr/local/redis/redis-2.confdocker run --name redis -3 -p 6381:6381 -d -v /data/redis-3:/usr/local/redis redis redis-server /usr/local/redis/redis-3.conf
-alpine3.11 redis-server /etc/redis/redis.conf # 容器3 docker run -p 6373:6379 -p 16373:16379 --name redis
hours 0.0.0.0:6373->6379/tcp, :::6373->6379/tcp, 0.0.0.0:16373->16379/tcp, :::16373->16379/tcp redis
分别安装在以下目录 /usr/local/redis-cluster/redis-1 /usr/local/redis-cluster/redis-2 /usr/local/redis-cluster/redis local/redis-cluster/redis-2/bin[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis
www.wmyskxz.com/2020/02/29/redis-2-tiao-yue-biao/ Redis(3)——分布式锁深入探究 - https://www.wmyskxz.com/2020/03/01/redis
失败重试在并发场景下,RedLock会出现这样一个问题,比如有三个线程同时去获取了同一张票的锁,此时A线程已经成功给redis-1和reids-2加上了锁,线程B已经成功给redis-3,reids-4
hours 0.0.0.0:6373->6379/tcp, :::6373->6379/tcp, 0.0.0.0:16373->16379/tcp, :::16373->16379/tcp redis
www.wmyskxz.com/2020/02/29/redis-2-tiao-yue-biao/ Redis(3)——分布式锁深入探究 - https://www.wmyskxz.com/2020/03/01/redis
1 Running 0 3d redis-2 1/1 Running 0 3d redis
20000 redis: cluster: nodes: - redis-1:6379 - redis-2:6379 - redis