一、源码安装
[root@redis-node1 ~]# tar zxf redis-7.4.0.tar.gz
[root@redis-node1 ~]# cd redis-7.4.0
[root@redis-node1 redis-7.4.0]# dnf install make gcc -y[root@redis-node1 redis-7.4.0]# make ;make install
#启动redis
[root@redis-node1 redis-7.4.0]# cd utils/
[root@redis-node1 utils]# vim install_server.sh#bail if this system is managed by systemd
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
# echo "This systems seems to use systemd."
# echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
# exit 1
#fi[root@redis-node1 utils]# mkdir /etc/init.d/ -p
[root@redis-node1 utils]# ./install_server.sh[root@redis-node1 utils]# vim /etc/redis/6379.conf
bind * -::*
[root@redis-node1 utils]# /etc/init.d/redis_6379 restart[root@redis-node1 utils]# redis-cli
127.0.0.1:6379>
二、redis的基本操作
#查看配置
127.0.0.1:6379> CONFIG GET BIND
1) "BIND"
2) "* -::*"
127.0.0.1:6379> CONFIG GET *
1) "repl-diskless-sync"
2) "yes"
3) "zset-max-listpack-entries"
4) "128"
5) "hash-max-listpack-value"
6) "64"
7) "appenddirname"
8) "appendonlydir"
9) "syslog-ident"
.......##redis里面有0-15个数据库
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> GET NAME
(nil)
....
三、主从辅助
配置主从同步
在node1,2,3配置
[root@redis-node1 utils]# vim /etc/redis/6379.conf
protected-mode no
[root@redis-node1 utils]# /etc/init.d/redis_6379 restart
配置slave节点
[root@redis-node2 ~]#vim /etc/redis/6379.conf
replicaof 172.25.250.10 6379
redis的哨兵
#在master节点
[root@redis-node1 redis-7.4.0]# cp sentinel.conf /etc/redis/
[root@redis-node1 redis-7.4.0]# vim /etc/redis/sentinel.confsentinel monitor mymaster 172.25.250.10 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel parallel-synce mymaster 1 #master数据的slave数量
sentinel failover-timeout mymaster 180000 #整个故障切换的超时时间为3分钟
[root@redis-node1 redis-7.4.0]# scp /etc/redis/sentinel.conf root@172.25.250.11:/etc/redis/
root@172.25.250.11's password:
sentinel.conf 100% 14KB 8.2MB/s 00:00
[root@redis-node1 redis-7.4.0]# scp /etc/redis/sentinel.conf root@172.25.250.12:/etc/redis/
root@172.25.250.12's password:
sentinel.conf 100% 14KB 9.6MB/s 00:00
启动服务
[root@redis-node1 redis]# redis-sentinel /etc/redis/sentinel.conf
##在开一个master节点终端
8755:X 29 Aug 2024 16:08:05.634 # +odown master mymaster 172.25.250.10 6379 #quorum 3/2
8755:X 29 Aug 2024 16:08:05.634 * Next failover delay: I will not start a failover before Thu Aug 29 16:14:06 2024
8755:X 29 Aug 2024 16:08:06.050 # +config-update-from sentinel 4427d4c9515b51f30c7389f57d24d937d46c0d89 172.25.250.12 26379 @ mymaster 172.25.250.10 6379
8755:X 29 Aug 2024 16:08:06.051 # +switch-master mymaster 172.25.250.10 6379 172.25.250.11 6379
8755:X 29 Aug 2024 16:08:06.052 * +slave slave 172.25.250.12:6379 172.25.250.12 6379 @ mymaster 172.25.250.11 6379
8755:X 29 Aug 2024 16:08:06.052 * +slave slave 172.25.250.10:6379 172.25.250.10 6379 @ mymaster 172.25.250.11 6379
8755:X 29 Aug 2024 16:08:06.055 * Sentinel new configuration saved on disk
8755:X 29 Aug 2024 16:08:16.060 # +sdown slave 172.25.250.10:6379 172.25.250.10 6379 @ mymaster 172.25.250.11 6379
#在matster中设定 [root@redis-node2 ~]# redis-cli
127.0.0.1:6379> CONFIG GET min-slaves-to-write
1) "min-slaves-to-write"
2) "0" 127.0.0.1:6379> CONFIG set min-slaves-to-write 2 OK
127.0.0.1:6379> CONFIG GET min-slaves-to-write
1) "min-slaves-to-write" 2) "
2"
#如果要永久保存写到配置文件中/etc/redis/6379.conf
redis cluster
准备6台 yum下载
[root@redis-node1 ~]# vim /etc/redis/redis.conf
masterauth "123456" #集群主从认证
requirepass "123456" 用“auth 密码”进行认证
cluster-enabled yes
cluster-config-file nodes-6379.conf #指定集群配置文件
cluster-node-timeout 15000
bind * -::*
[root@redis-node1 ~]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
(empty array)
[root@redis-node1 ~]# redis-cli --cluster help #命令帮助
[root@redis-node1 ~]# redis-cli --cluster create -a 123456 172.25.250.10:6379 172.25.250.11:6379 172.25.250.12:6379 172.25.250.13:6379 17214:6379 172.25.250:15:6379 --cluster-replicas 1
Can I set the above configuration? (type 'yes' to accept): yes
Master[0] -> Slots 0 - 5460 #哈希槽分配
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
#配置文件位置
[root@redis-node1 ~]# ll /var/lib/redis/nodes-6379.conf
-rw-r--r-- 1 redis redis 805 Aug 29 17:37 /var/lib/redis/nodes-6379.conf
检测redis集群状态
[root@redis-node1 ~]# redis-cli -a 123456 --cluster info 172.25.250.10:6379
[root@redis-node1 ~]# redis-cli -a 123456 cluster info
[root@redis-node1 ~]# redis-cli -a 123456 --cluster check 172.25.250.10:6379
写入数据
[root@redis-node1 ~]# redis-cli -a 123456
[root@redis-node2 ~]# redis-cli -a 123456
集群扩容
#集群扩容
[root@redis-node2 ~]# redis-cli -a 123456 --cluster add-node 172.25.250.16:6379 172.25.250.11:6379
[root@redis-node2 ~]# redis-cli -a 123456 --cluster reshard 172.25.250.11:6379 #分配卡槽
# redis-cli -a 123456 --cluster del-node IP:6379 标记 ##标记比如上图的b66e