Linux环境 安装 Redis-6.2.6 配置运行_01
https://gblfy.blog.csdn.net/article/details/105583077
文章目录
- 一、节点分布总览
- 二、软件配置初始化
- 2.1. 下载
- 2.2. 解压
- 2.3. 编译安装
- 2.4. 配置抽离
- 2.5. 配置编辑
- 2.6. 101节点操作
- 2.7. 102 节点操作
- 2.8. 103节点操作
- 三、软件配置集群化
- 3.1. 101节点启动redis
- 3.2. 102节点启动redis
- 3.3. 103节点启动redis
- 四、集群搭建
- 4.1. 防火墙配置
- 4.2.集群搭建
- 4.3. 查看集群信息
Redis 分布式集群能解决的问题 | 集群 概念 |
---|---|
解决现有系统单节点并发压力和物理上限问题 | 通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态 |
一、节点分布总览
演示案例
3主3从 横向扩展
服务器 | 端口 | 节点说明 |
---|---|---|
192.168.0.101 | 7001 | master |
192.168.0.101 | 7002 | slave |
192.168.0.102 | 7003 | master |
192.168.0.102 | 7004 | slave |
192.168.0.103 | 7005 | master |
192.168.0.103 | 7006 | slave |
二、软件配置初始化
2.1~2.5属于公共部分,101/102/103服务器需要依次执行
2.1. 下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.2. 解压
cd /app
tar -zxvf redis-6.2.6.tar.gz
2.3. 编译安装
cd redis-6.2.6/
make install
2.4. 配置抽离
mkdir /app/redis-cluster/ -p
mkdir /app/redis-cluster/data/redis-7001 -p
mkdir /app/redis-cluster/data/redis-7002 -p
2.5. 配置编辑
vim /app/redis-cluster/redis-7001.conf
2.6. 101节点操作
- redis-7001.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7001#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7001# 日志文件名
logfile "redis-7001.log"# .pid文件初始化
pidfile /var/run/redis_7001.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7001.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
- redis-7002.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7002#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7002# 日志文件名
logfile "redis-7002.log"# .pid文件初始化
pidfile /var/run/redis_7002.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7002.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
保存退出
2.7. 102 节点操作
- redis-7003.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7003#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7003# 日志文件名
logfile "redis-7003.log"# .pid文件初始化
pidfile /var/run/redis_7003.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7003.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
- redis-7004.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7004#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7004# 日志文件名
logfile "redis-7004.log"# .pid文件初始化
pidfile /var/run/redis_7004.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7004.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
保存退出
2.8. 103节点操作
- redis-7005.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7005#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7005# 日志文件名
logfile "redis-7005.log"# .pid文件初始化
pidfile /var/run/redis_7005.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7005.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
- redis-7006.conf
# 绑定访问ip信息
bind 0.0.0.0# # 修改对应的端口
port 7006#修改为后台启动
daemonize yes#关闭保护模式
protected-mode no#启动AOF文件
appendonly yes#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir /usr/local/redis-cluster/redis-7006# 日志文件名
logfile "redis-7006.log"# .pid文件初始化
pidfile /var/run/redis_7006.pid# 启动集群模式
cluster-enabled yes# 节点离线的超时时间
cluster-node-timeout 15000# 注释打开并修改node节点
cluster-config-file nodes-7006.conf#如果要设置密码需要增加如下配置:
#设置redis访问密码
requirepass pwd@2022gblfy#设置集群节点间访问密码,跟上面一致
masterauth pwd@2022gblfy
保存退出
三、软件配置集群化
配置环境变量 vim /etc/profile
export PATH=$PATH:/app/redis-6.2.6/bin
3.1. 101节点启动redis
- 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7002.conf
ps -ef |grep redis
3.2. 102节点启动redis
- 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7003.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7004.conf
ps -ef |grep redis
3.3. 103节点启动redis
- 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7005.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7006.conf
ps -ef |grep redis
四、集群搭建
上面仅仅是搭建了集群,6个节点之间还没有关系,下面通过 节点握手让集群各节点之间,发生关系。
4.1. 防火墙配置
- 101节点
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=17001/tcp --permanent
firewall-cmd --zone=public --add-port=17002/tcp --permanent
firewall-cmd --reload
- 102节点
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=17003/tcp --permanent
firewall-cmd --zone=public --add-port=17004/tcp --permanent
firewall-cmd --reload
- 103节点
firewall-cmd --zone=public --add-port=7005/tcp --permanent
firewall-cmd --zone=public --add-port=7006/tcp --permanent
firewall-cmd --zone=public --add-port=17005/tcp --permanent
firewall-cmd --zone=public --add-port=17006/tcp --permanent
firewall-cmd --reload
腾讯云安装的话,请跳转
腾讯云~Redis 伪分布式集群搭建2022版本+密码(linux环境)
4.2.集群搭建
- -a pwd@2022 我们之前设置的密码
- –cluster-replicas 1 主从搭配比例,1表示一主一从,2表示一主2从,要使用可以被客户端访问到的ip
登录101服务器的7001节点以下命令(默认按照顺序自动分配主从,一般顺序是一主一从按照你的命令排列顺序):
redis-cli -a pwd@2022 --cluster create --cluster-replicas 1 192.168.0.101:7001 192.168.0.102:7004 192.168.0.102:7003 192.168.0.103:7006 192.168.0.103:7005 192.168.0.101:7002
执行完后会出现下面的界面,输入yes回车即可,我们可以得到以下信息
每一个主服务的哈希槽是多少
谁是主谁是从,谁是谁的主,谁是谁的从
成功标识
操作记录:
[root@localhost redis-cluster]# /app/redis-6.2.6/src/redis-cli -a pwd@2022 --cluster create --cluster-replicas 1 192.168.0.101:7001 192.168.0.102:7004 192.168.0.102:7003 192.168.0.103:7006 192.168.0.103:7005 192.168.0.101:7002
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.0.102:7003 to 192.168.0.101:7001
Adding replica 192.168.0.103:7005 to 192.168.0.102:7004
Adding replica 192.168.0.101:7002 to 192.168.0.103:7006
M: 96ba5eb3bae52fd3a113626a112ed167c46d643e 192.168.0.101:7001slots:[0-5460] (5461 slots) master
M: d158ed7cb9131bdb89f4bfbb696ccb183f1a6769 192.168.0.102:7004slots:[5461-10922] (5462 slots) master
S: 853bd88678ce49d58005124649cd0e97a83422b5 192.168.0.102:7003replicates 96ba5eb3bae52fd3a113626a112ed167c46d643e
M: e68d4d38dab17b28639f0012a0aa2ff3a8646df5 192.168.0.103:7006slots:[10923-16383] (5461 slots) master
S: 7ec08016869a30c88e9bf0d8d28ccb0fe1d8714d 192.168.0.103:7005replicates d158ed7cb9131bdb89f4bfbb696ccb183f1a6769
S: c5faf6f2f7964c48a2c8b0e28187c6b69e2798f9 192.168.0.101:7002replicates e68d4d38dab17b28639f0012a0aa2ff3a8646df5
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 192.168.0.101:7001)
M: 96ba5eb3bae52fd3a113626a112ed167c46d643e 192.168.0.101:7001slots:[0-5460] (5461 slots) master1 additional replica(s)
S: 7ec08016869a30c88e9bf0d8d28ccb0fe1d8714d 192.168.0.103:7005slots: (0 slots) slavereplicates d158ed7cb9131bdb89f4bfbb696ccb183f1a6769
S: c5faf6f2f7964c48a2c8b0e28187c6b69e2798f9 192.168.0.101:7002slots: (0 slots) slavereplicates e68d4d38dab17b28639f0012a0aa2ff3a8646df5
S: 853bd88678ce49d58005124649cd0e97a83422b5 10.1.105.132:7003slots: (0 slots) slavereplicates 96ba5eb3bae52fd3a113626a112ed167c46d643e
M: e68d4d38dab17b28639f0012a0aa2ff3a8646df5 192.168.0.103:7006slots:[10923-16383] (5461 slots) master1 additional replica(s)
M: d158ed7cb9131bdb89f4bfbb696ccb183f1a6769 192.168.0.102:7004slots:[5461-10922] (5462 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost redis-cluster]#
4.3. 查看集群信息
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001 -a wsSC@2022
cluster info
cluster nodes
操作记录:
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001 -a zxpwd@2022
192.168.0.101:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:189
cluster_stats_messages_pong_sent:216
cluster_stats_messages_sent:405
cluster_stats_messages_ping_received:211
cluster_stats_messages_pong_received:189
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:405
192.168.0.101:7001> cluster nodes
7ec08016869a30c88e9bf0d8d28ccb0fe1d8714d 192.168.0.103:7005@17005 slave d158ed7cb9131bdb89f4bfbb696ccb183f1a6769 0 1669723359000 2 connected
c5faf6f2f7964c48a2c8b0e28187c6b69e2798f9 192.168.0.101:7002@17002 slave e68d4d38dab17b28639f0012a0aa2ff3a8646df5 0 1669723357793 4 connected
853bd88678ce49d58005124649cd0e97a83422b5 192.168.0.102:7003@17003 slave 96ba5eb3bae52fd3a113626a112ed167c46d643e 0 1669723359801 1 connected
e68d4d38dab17b28639f0012a0aa2ff3a8646df5 192.168.0.103:7006@17006 master - 0 1669723358000 4 connected 10923-16383
d158ed7cb9131bdb89f4bfbb696ccb183f1a6769 192.168.0.102:7004@17004 master - 0 1669723357000 2 connected 5461-10922
96ba5eb3bae52fd3a113626a112ed167c46d643e 192.168.0.101:7001@17001 myself,master - 0 1669723358000 1 connected 0-5460
192.168.0.101:7001>