Redis入门实战(2)-安装

时间:2020-06-10
本文章向大家介绍Redis入门实战(2)-安装,主要包括Redis入门实战(2)-安装使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文主要介绍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 hadoop@10.49.196.21:/home/hadoop/app
scp -r ./redis-5.0.8 hadoop@10.49.196.22:/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的各种模式的安装,单机模式主要用于测试学习,主从模式可用性没有哨兵模式高,集群模式相对较复杂,所有一般实际使用中会使用哨兵模式。

原文地址:https://www.cnblogs.com/wuyongyin/p/12963687.html