Redis安装及集群搭建(cluster模式)
操作系统:CentOS7
Redis版本:5.0.5
端口:6379、6380、16379、16380
备注:下文的安装步骤中,【】包围的部分需根据自己的环境来配置
单节点安装
1 使用源代码方式安装
安装包下载地址:http://download.redis.io/releases/redis-5.0.5.tar.gz
redis相关依赖在deps中,如果安装redis过程中报缺少依赖错误,则到deps目录下执行相关的make 【文件名】命令。
2 配置
2.1 新建相关目录
2.1.1 新建配置文件存放目录
mkdir /etc/redis
2.1.2 新建数据存放目录
mkdir -p 【数据目录】/【端口号】
2.2 编辑配置文件
将源代码目录内的配置文件模板(./redis.conf)复制到/etc/redis目录中,若一个物理节点需要运行多个redis服务,配置文件以端口号区分(如“redis_6379.conf”),然后按照下表对其中的部分参数进行编辑。
daemonize yes
pidfile /var/run/redis_6379.pid
port 【端口号】
dir 【数据目录】/【端口号】
requirepass 【密码】
protected-mode no
cluster-replica-validity-factor 0
#bind 127.0.0.1
3 测试
/usr/local/bin/redis-server /etc/redis/redis_6379.conf
4 将redis服务加入systemd管理
vi /etc/systemd/system/redis_【端口号】.service
编辑
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis_【端口号】.pid
ExecStart=/usr/local/bin/redis-server /etc/redis/redis_【端口号】.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
5 开机启动
systemctl enable redis_【端口号】
6 增加布隆过滤器模块
项目中需要使用布隆过滤器做token的失效判定,如果没有需求可以不安装。
6.1 安装
源码方式安装(下载地址:https://github.com/RedisBloom/RedisBloom)
6.2 增加配置
loadmodule 【源码存放路径】/RedisBloom-master/redisbloom.so
6.3 重启
systemctl restart redis_【端口号】
6.4 测试
redis-cli -p 【端口号】
auth 【密码】
bf.reserve userid 0.01 100000
bf.add userid '1'
bf.madd userid '2' '3'
bf.exists userid '1'
集群安装
简介
Redis支持3种集群模式,分别为主从(master/slave)、哨兵(sentinal)和集群(cluster),以下针对负载均衡、高可用和伸缩性(水平扩展)三方面需求做简单总结:
负载均衡 | 高可用 | 伸缩性 | |
---|---|---|---|
master/slave | √ | 只能实现读服务的高可用 | × |
sentinal | √ | √ | × |
cluster | √ | √ | √ |
cluster模式集群安装步骤
部署架构如“图1”所示,三台机器Host-1、Host-2和Host-3,每台机器部署一个master节点和一个replica节点(master实现伸缩性,replica实现高可用),master节点运行在6379端口,replica节点运行在6380端口。
1 增加配置
vi /etc/redis/redis_【端口号】.conf
增加或修改
port 【端口号】
cluster-enabled yes
cluster-config-file nodes_【端口号】.conf
cluster-node-timeout 5000
appendonly yes
2 cd到/usr/local/bin,执行集群构建命令,形成3个master组成的集群
redis-cli --cluster create 【Host-1的IP】:6379 【Host-2的IP】:6379 【Host-3的IP】:6379 -a 【密码】
3 验证
redis-cli -a 【密码】 -p 6379 cluster nodes
4 添加3个replica节点
redis-cli -a 【密码】 --cluster add-node 【Host-2的IP】:6380 【Host-1的IP】:6379 --cluster-slave --cluster-master-id 【Master-1的ID】
redis-cli -a 【密码】 --cluster add-node 【Host-3的IP】:6380 【Host-2的IP】:6379 --cluster-slave --cluster-master-id 【Master-3的ID】
redis-cli -a 【密码】 --cluster add-node 【Host-1的IP】:6380 【Host-3的IP】:6379 --cluster-slave --cluster-master-id 【Master-2的ID】
5 常用命令
官方文档:https://redis.io/topics/cluster-tutorial
5.1 修复分片
redis-cli -a 【密码】 --cluster fix 【集群中的某个节点(IP:端口号)】
5.2 添加节点
redis-cli -a 【密码】 --cluster add-node 【新的节点(IP:端口号)】 【集群中的某个节点(IP:端口号)】
5.3 重新分片
redis-cli -a 【密码】 --cluster reshard 【集群中的某个节点(IP:端口号)】
5.4 添加replica节点
redis-cli -a 【密码】 --cluster add-node 【要增加的replica节点(IP:端口号)】 【集群中的某个节点(IP:端口号)】 --cluster-slave --cluster-master-id 【主节点的IP】