环境: 192.168.71.201 192.168.71.202 192.168.71.203 集群规划: 192.168.71.201:7000 192.168.71.202:7000 192.168.71.203:7000 192.168.71.202:7001 192.168.71.203:7001 192.168.71.201:7001 192.168.71.203:7002 192.168.71.201:7002 192.168.71.202:7002 手动安装: 三个节点统一执行: 1. 下载并解压 cd /root/software wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -zxvf redis-5.0.5.tar.gz 2. 编译安装 cd redis-5.0.5 make && make install 3. 修改必要的环境参数: echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled 加入开机启动项: vi /etc/rc.local echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled 4.修改内核参数: vi /etc/sysctl.conf vm.overcommit_memory = 1 net.core.somaxconn= 1024 vm.max_map_count=655360 5.修改连接数: ulimit -n 655350 6、创建redis用户: useradd -d /data/redis -m redis 7、在redis用户根目录创建redis_cluster: su - redis mkdir redis_cluster mkdir logs 8、在 redis_cluster 目录下,创建名为7000、7001的目录,并将 redis.conf 拷贝到这二个目录中 提前准备好 redis 配置文件:(redis.conf) bind 0.0.0.0 protected-mode yes port 7000 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /data/redis/redis_7000.pid loglevel notice logfile "/data/redis/logs/redis-7000.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump-7000.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 maxmemory 17179869184 appendonly yes appendfilename "appendonly-7000.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 15000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes 修改端口并把配置文件复制至 7001 和 7002 目录下: mkdir 7000 7001 7002 cp redis.conf redis_cluster/7000 cp redis.conf redis_cluster/7001 cp redis.conf redis_cluster/7002 9、启动各节点,包括7000、7001、7002 cat /data/redis/redis_cluster/7000/start.sh redis-server ./redis.conf & 启动: bash start.sh 10.创建集群: su - redis redis-cli --cluster create 172.21.1.1:7000 172.21.1.2:7000 172.21.1.3:7000 cd /data/redis/redis_cluster/7000 && cat nodes-7000.conf |grep master 添加从节点: redis-cli --cluster add-node --cluster-slave --cluster-master-id d3dfc8f2d84f06a8597e6ab999d40800361787fe 192.168.71.202:7001 192.168.71.202:7000 (最后一个参数可以写不是自己的ip) redis-cli --cluster add-node --cluster-slave --cluster-master-id d3dfc8f2d84f06a8597e6ab999d40800361787fe 192.168.71.203:7002 192.168.71.202:7000 redis-cli --cluster add-node --cluster-slave --cluster-master-id 728995059965e0e4e1e7a6d23f7426764bdff96f 192.168.71.203:7001 192.168.71.203:7000 redis-cli --cluster add-node --cluster-slave --cluster-master-id 728995059965e0e4e1e7a6d23f7426764bdff96f 192.168.71.201:7002 192.168.71.203:7000 redis-cli --cluster add-node --cluster-slave --cluster-master-id dd894273aa6b33723e489575897602f094dbe1c8 192.168.71.201:7001 192.168.71.202:7000 redis-cli --cluster add-node --cluster-slave --cluster-master-id dd894273aa6b33723e489575897602f094dbe1c8 192.168.71.202:7002 192.168.71.202:7000 登陆测试: $ redis-cli -h 192.168.71.201 -p 7000 192.168.71.201:7000> CLUSTER INFO cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:9 cluster_size:3 cluster_current_epoch:3 cluster_my_epoch:1 cluster_stats_messages_ping_sent:4637 cluster_stats_messages_pong_sent:4580 cluster_stats_messages_sent:9217 cluster_stats_messages_ping_received:4571 cluster_stats_messages_pong_received:4637 cluster_stats_messages_meet_received:9 cluster_stats_messages_received:9217 192.168.71.201:7000> CLUSTER NODES e8a8958162462082766c1ea496a26c80342c372d 192.168.71.203:7002@17002 slave d3dfc8f2d84f06a8597e6ab999d40800361787fe 0 1605258166612 1 connected d3dfc8f2d84f06a8597e6ab999d40800361787fe 192.168.71.201:7000@17000 myself,master - 0 1605258166000 1 connected 0-5460 20bc6280f2e69ca06d05f2543b05fd4798592b80 192.168.71.201:7002@17002 slave 728995059965e0e4e1e7a6d23f7426764bdff96f 0 1605258163000 2 connected dd894273aa6b33723e489575897602f094dbe1c8 192.168.71.203:7000@17000 master - 0 1605258168117 3 connected 10923-16383 905c8a1c5d1ed7bf90e0537713dd3eb23cabee44 192.168.71.201:7001@17001 slave dd894273aa6b33723e489575897602f094dbe1c8 0 1605258166000 3 connected 17cb167b022c7c617c142f5b92bf928398304a39 192.168.71.202:7001@17001 slave d3dfc8f2d84f06a8597e6ab999d40800361787fe 0 1605258166000 1 connected 728995059965e0e4e1e7a6d23f7426764bdff96f 192.168.71.202:7000@17000 master - 0 1605258168617 2 connected 5461-10922 20954f8ef17ffbfe76528e13b26ef10e094d8b6c 192.168.71.202:7002@17002 slave dd894273aa6b33723e489575897602f094dbe1c8 0 1605258167616 3 connected 025bb42319a42ac3e153aa9dfaeb75fa8bb55126 192.168.71.203:7001@17001 slave 728995059965e0e4e1e7a6d23f7426764bdff96f 0 1605258164604 2 connected