本文主要介绍redis的安装,使用到的软件版本:Java 1.8.0_191、Redis 5.0.8、Centos 7.6。
1、单机安装
1.1、下载并解压redis
下载地址:https://redis.io/download
解压:tar zxvf redis-5.0.8.tar.gz
1.2、编译安装并创建日志目录
cd redis-5.0.8 make
mkdir logs
1.3、修改配置文件redis.conf
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on #启动守护进程
requirepass 123456
1.4、启动
cd redis-5.0.8/src
./redis-server ../redis.conf
2、主从模式安装
2.1、规划
ip | 端口 | 主从 |
10.49.196.20 | 6379 | 主 |
10.49.196.21 | 6379 | 从 |
10.49.196.22 | 6379 | 从 |
2.2、在主节点上安装并分发到从节点
10.49.196.20上安装:
cd redis-5.0.8 make
mkdir logs
修改redis.conf:
bind 10.49.196.20 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log" daemonize on requirepass 123456
分发整个包到从节点:
scp -r ./redis-5.0.8 [email protected]:/home/hadoop/app scp -r ./redis-5.0.8 [email protected]:/home/hadoop/app
2.3、修改从节点配置文件redis.conf
10.49.196.21:
bind 10.49.196.21 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
10.49.196.22:
bind 10.49.196.22 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
2.4、分别启动各节点
cd redis-5.0.8/src
./redis-server ../redis.conf
3、哨兵模式安装
3.1、规划
服务类型 | ip | 端口 | 主从 |
redis | 10.49.196.20 | 6379 | 主 |
redis | 10.49.196.21 | 6379 | 从 |
redis | 10.49.196.22 | 6379 | 从 |
sentinel | 10.49.196.20 | 26379 | |
sentinel | 10.49.196.21 | 26379 | |
sentinel | 10.49.196.22 | 26379 |
3.2、主从模式安装
哨兵模式时在主从模式的基础上增加哨兵进程;主从模式的安装可以参考1.2
3.3、哨兵配置
在10.49.196.20、10.49.196.21、10.49.196.22上修改sentinel.conf:
daemonize yes logfile "/home/hadoop/app/redis-5.0.8/logs/sentinel.log" sentinel monitor mymaster 10.49.196.20 6379 2 #sentinel monitor <主节点别名> <主节点host> <主节点端口> <票数> sentinel auth-pass mymaster 123456
3.4、启动
先启动各节点的redis服务,再启动各节点的sentinel服务:
cd redis-5.0.8/src ./redis-sentinel ../sentinel.conf
4、集群模式安装
4.1、集群安装
4.1.1、规划
集群安装至少需要6个节点,规划如下:
服务类型 | ip | 端口 |
redis | 10.49.196.20 | 7000 |
redis | 10.49.196.21 | 7000 |
redis | 10.49.196.22 | 7000 |
redis | 10.49.196.20 | 7001 |
redis | 10.49.196.21 | 7001 |
redis | 10.49.196.22 | 7001 |
4.1.2、在10.49.196.20上编译安装并创建日志目录
cd redis-5.0.8 make
mkdir logs
4.1.3、修改redis.conf
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
4.1.4、拷贝并分发redis
在10.49.196.20上重命名redis安装目录并拷贝一个副本:
mv redis-5.0.8 redis-5.0.8-7000 cp -r redis-5.0.8-7000 redis-5.0.8-7001
分发到10.40.196.21、10.40.196.22
scp ./redis-5.0.8-7000 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7000 hadoop@10.40.196.22:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.22:/home/hadoop/app
4.1.5、修改各redis副本redis.conf中绑定ip、端口、日志路径
最终各配置文件如下
10.49.196.20:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.20:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7001 logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.21 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.21 127.0.0.1
port 7001
logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.22 127.0.0.1
port 7000
logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
10.49.196.22:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.22 127.0.0.1
port 7001
logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
4.1.6、启动各个节点
./redis-server ../redis.conf
4.1.7、创建集群
redis-cli --cluster create 10.49.196.20:7000 10.49.196.20:7001 10.49.196.21:7000 10.49.196.21:7001 10.49.196.22:7000 10.49.196.22:7001 --cluster-replicas 1 -a 123456
创建成功会有如下类似日志:
4.2、集群管理
4.2.1、查看集群
./redis-cli --cluster check 127.0.0.1:7000 -a 123456
也可以登录redis-cli后使用如下命令查看redis集群信息:
127.0.0.1:7000> cluster nodes 127.0.0.1:7000> cluster info
4.2.2、增加节点
./redis-cli --cluster add-node NEW-NODE CLUSTER-NODE [-a PASSWORD]
打算增加10.49.196.10:7000(主)、10.49.196.10:7001(备) 两个节点
./redis-cli --cluster add-node 10.49.196.10:7000 10.49.196.20:7000 -a 123456 ./redis-cli --cluster add-node 10.49.196.10:7001 10.49.196.20:7000 -a 123456
设置主备关系:
./redis-cli -c -h 10.49.196.10 -p 7001 -a 123456 10.49.196.10:7001> cluster replicate e1341ea1fe323abb55f5a0b42129800cb12d46c9
e1341ea1fe323abb55f5a0b42129800cb12d46c9为10.49.196.10:7000的节点id。
操作完成后结果入下:
4.2.3、给新的主节点分配槽位
./redis-cli --cluster reshard 10.49.196.20:7000 -a 123456
执行命令后会让用户选择需移动的槽位数、槽位移动到的节点、从哪个节点移动槽位。
4.2.4、删除节点
从节点可以直接删除,主节点需先把改节点上槽位移动到其他的主节点上,然后再删除。
这里假设要删除新增的两个节点10.49.196.10:7000、10.49.196.21:7001;先需把10.49.196.10:7000上的槽位移到其他的节点:
删除节点,先删除从节点,再删除主节点:
./redis-cli --cluster del-node 10.49.196.10:7001 9f907183de2e165b7de9d130ea228cda5811f88c -a 123456 ./redis-cli --cluster del-node 10.49.196.10:7000 e1341ea1fe323abb55f5a0b42129800cb12d46c9 -a 123456
删除后,又回到3+3的集群:
4.2.4、重启集群
依次停止各个redis节点,再依次启动即可。
5、小结
本文主要介绍了redis的各种模式的安装,单机模式主要用于测试学习,主从模式可用性没有哨兵模式高,集群模式相对较复杂,所有一般实际使用中会使用哨兵模式。