本文共 4024 字,大约阅读时间需要 13 分钟。
redis集群模式的选型
https://dl.lenses.stream/d/?id=550f16d9-14ee-458e-97d8-8ecfcbb695e9
https://dl.lenses.stream/d/?id=ac2a62f3-1fa5-41ac-95ec-fcbb33eb37fd
搭建redis5.0集群
https://www.jianshu.com/p/0b94c3a496e3
docker方式搭建redis集群(redis5)
https://www.jianshu.com/p/0172fad7d8d2
两台虚拟机部署6个redis
1.创建redis相目录 node1上: mkdir -p /root/fct/redis-cluster/redis{7001,7002,7003} mkdir -p /root/fct/redis-cluster/redis{7001,7002,7003}/data touch /root/fct/redis-cluster/redis{7001,7002,7003}/redis.conf其中redis.conf配置文件
bind 172.xx.xxx.xxxprotected-mode yesport 7001tcp-backlog 511timeout 0tcp-keepalive 300daemonize nosupervised nologlevel noticedatabases 16always-show-logo yessave 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./replica-serve-stale-data yesreplica-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noreplica-priority 100lazyfree-lazy-eviction nolazyfree-lazy-expire nolazyfree-lazy-server-del noreplica-lazy-flush noappendonly yesappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yesaof-use-rdb-preamble yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000stream-node-max-bytes 4096stream-node-max-entries 100activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit replica 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10dynamic-hz yesaof-rewrite-incremental-fsync yesrdb-save-incremental-fsync yesrequirepass rootmasterauth rootcluster-enabled yescluster-config-file nodes.confcluster-node-timeout 15000
注意:只用配置文件只要修改对应ip和端口即可
docker run -d \--network=host \-v /root/fct/redis-cluster/redis7001/data/:/data:z \-v /root/fct/redis-cluster/redis7001/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7001 redis \redis-server /usr/local/etc/redis/redis.conf \docker run -d \--network=host \-v /root/fct/redis-cluster/redis7002/data/:/data:z \-v /root/fct/redis-cluster/redis7002/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7002 redis \redis-server /usr/local/etc/redis/redis.conf docker run -d \--network=host \-v /root/fct/redis-cluster/redis7003/data/:/data:z \-v /root/fct/redis-cluster/redis7003/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7003 redis \redis-server /usr/local/etc/redis/redis.conf docker run -d \--network=host \-v /root/fct/redis-cluster/redis7004/data/:/data:z \-v /root/fct/redis-cluster/redis7004/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7004 redis \redis-server /usr/local/etc/redis/redis.conf docker run -d \--network=host \-v /root/fct/redis-cluster/redis7005/data/:/data:z \-v /root/fct/redis-cluster/redis7005/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7005 redis \redis-server /usr/local/etc/redis/redis.conf docker run -d \--network=host \-v /root/fct/redis-cluster/redis7006/data/:/data:z \-v /root/fct/redis-cluster/redis7006/redis.conf:/usr/local/etc/redis/redis.conf:z \--name redis7006 redis \redis-server /usr/local/etc/redis/redis.conf
./redis-cli -a root --cluster create 172.19.32.142:7001 172.19.32.142:7002 172.19.32.142:7003 172.19.32.146:7004 172.19.32.146:7005 172.19.32.146:7006 --cluster-replicas 1
##其中-c相当于--cluster 表示进入集群模式./redis-cli -c -h 172.19.32.142 -p 7002
然后使用CLUSTER INFO 和CLUSTER NODES命令检查集群状态
CLUSTER INFO命令
之后可以分别使用java代码连接redis集群测试,同时开始集群高可用性测试,主备切换的功能!
(参考:https://www.cnblogs.com/cxbhakim/p/9151720.html)
具体java代码可以参考我的另一篇文章:https://blog.csdn.net/fct2001140269/article/details/102580071