Redis 5.*Cluster部署手册

本文只适用于5.*的Redis版本
用于生产环境的redis请使用stable版本,下载地址:Redis Download

机器列表(此机器列表仅用于说明安装步骤):

IP端口说明
102.168.2.1106379,6380hosts映射:redis-node1,需同时开放16379和16380端口用于节点间通信
102.168.2.1116379,6380hosts映射:redis-node2,需同时开放16379和16380端口用于节点间通信
102.168.2.1126379,6380hosts映射:redis-node3,需同时开放16379和16380端口用于节点间通信

集群中共有slot 16384个,会分配到集群中的节点中。如果有三个master节点
Node A contains hash slots from 0 to 5500.
Node B contains hash slots from 5501 to 11000.
Node C contains hash slots from 11001 to 16383.
salve节点会全量复制master各slot的数据,当master宕机后,slave会成为新的master。

集群最少需要3个master,官方推荐 3master,3salve。

1.上传和编译

上传到目录:/usr/local/redis/

#解压到当前文件夹:    
tar -zvxf redis-5.0.*.tar.gz
#进入解压后的文件夹
cd /usr/local/redis/redis-5.0.*
#编译和安装
make
make install PREFIX=/usr/local/redis

这个时候在会生成执行命令/usr/local/redis/bin

2.配置Redis

# 进入/usr/local/redis路径
cd /usr/local/redis
# 创建config文件夹
mkdir /usr/local/redis/config
#创建aof和rdb存储文件夹
mkdir /usr/local/redis/data
#创建pid存储文件夹
mkdir /var/run/redis

将/usr/local/redis/redis-5.0.*/redis.conf文件拷贝到config文件夹,并修改为node-6379.conf
开始修改6379节点配置文件
PS:maxmemory参数重要。请仔细理解。配置不当可能导致redis RDB全量备份风暴,集群不可用

vim /usr/local/redis/config/node-6379.conf

#修改如下值
#绑定的ip
bind 0.0.0.0
#关闭保护模式
protected-mode no
#监听端口
port 6379
#后台运行
daemonize yes
#指定pid文件位置
pidfile "/var/run/redis/redis_6379.pid"
#Redis持久化dump文件名称,存储在dir配置项路径下
dbfilename "dump-6379.rdb"
#rdb和aof文件存储路径前缀,默认是启动路径,这里修改为绝对路径
dir /usr/local/redis/data/
#密码配置
#用于从节点同步请求密码
masterauth "your_password" 
#客户端连接密码,自从redis变的快了每秒能并发15W请求
#这意味着你需要设置一个复杂的密码,不然会被轻易的暴力破解
requirepass "your_password" 
#限制最大使用内存,单位字节.建议一个进程处理数据不超过10G,单台机器最大使用内存不超过物理内存一半。
#EXP:64G内存,三台机器。推荐一台机器起四个进程,maxmemory配置为8G,最大占用内存32G.
maxmemory "<bytes>"
#开启增量持久化模式
appendonly yes
#指定增量持久化文件名称,存储在dir配置项路径下
appendfilename "appendonly-6379.aof"
#开启集群
cluster-enabled yes
#根据你启用的节点来命名,最好和端口保持一致,这个是自动生成用来保存集群节点的名称,状态等信息。
cluster-config-file  "nodes-6379.conf"
#单位毫秒如果一个master节点在多少毫秒内不可达,那么就被认为宕机了
cluster-node-timeout 15000

6380节点配置文件只需要修改6379为6380
vim编辑器下使用如下命令可以统一替换
:%s/6379/6380/g
表示把6379替换为6380

完成后将/usr/local/redis文件夹下东西远程拷贝到102.168.2.111和102.168.2.112服务器相同的目录。

scp -r /usr/local/redis/* root@102.168.2.111:/usr/local/redis/
scp -r /usr/local/redis/* root@102.168.2.112:/usr/local/redis/

3.启动和验证服务

在三台机器上执行启动命令:

#进入/usr/local/redis/bin目录
cd /usr/local/redis/bin
./redis-server  ../config/node-6379.conf
./redis-server  ../config/node-6380.conf

 打印如下日志表明启动成功

3.1配置开机启动

将安装包中的启动脚本拷贝到系统目录

cp ./redis-5.0.*/utils/redis_init_script /etc/init.d/redis-6379
cp ./redis-5.0.*/utils/redis_init_script /etc/init.d/redis-6380

修改脚本中对应的端口,一个启动成功后,拷贝一份只用修改端口即可。

#只用修改前几个变量为实际路径
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis/redis_${REDISPORT}.pid
CONF="/usr/local/redis/config/node-${REDISPORT}.conf"
#后续脚本不动

3.2初始化和检查服务

启动服务

#打开redis命令:
service redis-{port} start
#关闭redis命令:
service redis-{port} stop
#设为开机启动:
chkconfig redis-{port} on
#设为开机关闭:
chkconfig redis-{port} off

检查redis进程:ps -ef|grep redis

 初始化所有的nodes节点
注意这里的IP必须使用实际IP,在连接时候jedis会读取覆盖本地配置

./redis-cli -a "your_password" --cluster  create 102.168.2.110:6379 102.168.2.110:6380 102.168.2.111:6379 102.168.2.111:6380 102.168.2.112:6379 102.168.2.112:6380 --cluster-replicas 1

–cluster-replicas 1 命令的意思是创建master的时候同时创建一个slave,相当于一主一备。

测试服务是否正常

./redis-cli -c -p 6379 -h localhost -a "your_password"
cluster nodes
cluster info

nodes输出

nodes输出可以看到一主一备的信息

info输出

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值