本次要求是哨兵叢集版本
1.下載所需要版本包
[root@app-bj-ali-ecs1 ~]# wget http://download.redis.io/releases/redis-6.0.6.tar.gz [root@app-bj-ali-ecs1 ~]# tar xzf redis-6.0.6.tar.gz [root@app-bj-ali-ecs1 ~]# cd redis-6.0.6 [root@app-bj-ali-ecs1 ~]# make [root@app-bj-ali-ecs1 ~]# make install [root@app-bj-ali-ecs1 ~]# cd [root@app-bj-ali-ecs1 ~]# mv redis-6.0.6 /usr/local/redis [root@app-bj-ali-ecs1 ~]# cd /usr/local/redis/ [root@app-bj-ali-ecs1 redis]# src/redis-server # 可以正常啟動,安裝成功 58034:C 06 Dec 2024 18:18:34.236 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 58034:C 06 Dec 2024 18:18:34.236 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=58034, just started 58034:C 06 Dec 2024 18:18:34.236 # Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 6.0.6 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 58034 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 58034:M 06 Dec 2024 18:18:34.237 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower valueof 128. 58034:M 06 Dec 2024 18:18:34.237 # Server initialized 58034:M 06 Dec 2024 18:18:34.237 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 58034:M 06 Dec 2024 18:18:34.237 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 58034:M 06 Dec 2024 18:18:34.237 * Ready to accept connections
2.實現主從叢集
由於測試環境僅有一臺機器,因此設定6379為主,6380、6381為從,即一主雙從
[root@app-bj-ali-ecs1 redis]# vim conf/6379.conf daemonize yes masterauth 123456 min-replicas-to-write 1 min-replicas-max-lag 10 requirepass 123456 appendonly yes [root@app-bj-ali-ecs1 redis]# vim conf/6380.conf daemonize yes port 6380 # 修改埠 replicaof 172.18.169.29 6379 # 設定主資訊 masterauth 123456 min-replicas-to-write 1 min-replicas-max-lag 10 requirepass 123456 appendonly yes [root@app-bj-ali-ecs1 redis]# vim conf/6381.conf daemonize yes port 6381 # 修改埠 replicaof 172.18.169.29 6379 # 設定主資訊 masterauth 123456 min-replicas-to-write 1 min-replicas-max-lag 10 requirepass 123456 appendonly yes [root@app-bj-ali-ecs1 redis]# src/redis-server conf/6379.conf >> logs/6379.log & [root@app-bj-ali-ecs1 redis]# src/redis-server conf/6380.conf >> logs/6380.log & [root@app-bj-ali-ecs1 redis]# src/redis-server conf/6381.conf >> logs/6381.log & [root@app-bj-ali-ecs1 redis]# src/redis-cli -p 6379 -a 123456 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> INFO replication # Replication role:master # 身份正常 connected_slaves:2 # 狀態正常 min_slaves_good_slaves:2 slave0:ip=172.18.169.29,port=6380,state=online,offset=434,lag=0 # 從6380正常 slave1:ip=172.18.169.29,port=6381,state=online,offset=434,lag=1 # 從6381正常 master_replid:961eaeac79b010b491ea4f2ce75c123c91d1e5ff master_replid2:0000000000000000000000000000000000000000 master_repl_offset:448 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:448
2.實現哨兵
哨兵至少需要三臺,由於測試環境僅有一臺機器,因此設定26379,26380、26381為不同例項進行實現
[root@app-bj-ali-ecs1 redis]# vim conf/26379.conf daemonize yes sentinel monitor mymaster 172.18.169.29 6379 2 # 改成自己的ip sentinel auth-pass mymaster 123456 [root@app-bj-ali-ecs1 redis]# vim conf/26380.conf daemonize yes port 26380 sentinel monitor mymaster 172.18.169.29 6379 2 sentinel auth-pass mymaster 123456 [root@app-bj-ali-ecs1 redis]# vim conf/26381.conf daemonize yes port 26381 sentinel monitor mymaster 172.18.169.29 6379 2 sentinel auth-pass mymaster 123456 [root@app-bj-ali-ecs1 redis]# src/redis-sentinel conf/26379.conf >> logs/26379.log & [root@app-bj-ali-ecs1 redis]# src/redis-sentinel conf/26380.conf >> logs/26380.log & [root@app-bj-ali-ecs1 redis]# src/redis-sentinel conf/26381.conf >> logs/26381.log & [root@app-bj-ali-ecs1 redis]# src/redis-cli -p 26379 127.0.0.1:26379> INFO Sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=172.18.169.29:6379,slaves=2,sentinels=3 # 6379為主,兩從,三個哨兵,狀態正常