您的位置:首页 > 数据库 > Redis

基于哨兵(Sentinel)模式搭建Redis集群搭建

2018-01-27 01:28 1026 查看
这篇文章主要是想把自己搭建Redis哨兵模式集群的过程记下来,方便后面搭建的重复性工作。

首先一点,学习任何知识都要学会看官网,所以,可以参考官网进行配置。我为了省事儿,参照了公司的规范来搭建的。官网地址:https://redis.io/

有个官方下载地址,可以直接下载各个版本的Redis:http://download.redis.io/releases/

因为在Linux环境搭建,我为了省事儿,直接采写成脚本一起执行的,安装包就直接在Linux中进行下载的,如果下载不了,可以提前下载好。我选择redis3.2.8版本进行安装。
我安装的集群有三台机器,设置一主两备三哨兵。

一、首先进行Redis本身的搭建、运行:

直接运行以下脚本创建目录并安装。

#创建redis临时目录
mkdir /app/tmp
cd /app/tmp/
chmod -R 777 /app
wget http://download.redis.io/releases/redis-3.2.8.tar.gz tar -zxvf redis-3.2.8.tar.gz
cd /app/tmp/redis-3.2.8

# 安装redis
make PREFIX=/app/redis install

# 创建redis各文件目录
mkdir -p /app/redis/conf
mkdir -p /app/redis/data
mkdir -p /app/redis/run
mkdir -p /app/redis/log
mkdir –p /app/redis/sentinel
mkdir -p /app/redis/scripts
# 创建数据目录
cd /app/redis/data
mkdir REDIS_CLUSTER_SVR_03
# 创建配置文件
cd /app/redis/conf
touch REDIS_CLUSTER_SVR_03.conf

对配置文件进行修改,命令:vi REDIS_CLUSTER_SVR_03.conf

将如下内容保存到 REDIS_CLUSTER_SVR_03.conf,对日志等文件/目录进行修改,并设置密码
daemonize yes
# 配置redis是否以daemon方式运行
pidfile /app/redis/run/REDIS_CLUSTER_SVR_03.pid
# 指定redis运行时的PID文件
port 8080
# 服务端口
tcp-backlog 511
# 设置tcp-backlog的大小
bind 10.202.107.161
# 指定redis的服务IP
timeout 180
# 客户端空闲多少秒后关闭连接
tcp-keepalive 60
# 指定向客户端发送"ACKs"指令的时间间隔,推荐值为60s
loglevel notice
# 设置日志级别
logfile "/app/redis/log/REDIS_CLUSTER_SVR_03.log"
# 指定日志文件
databases 16
# 设置数据库个数,默认为16个
save 900 1
save 300 10
save 60 100
# 设置redis数据写入RDB数据文件的策略
stop-writes-on-bgsave-error yes
# 在使用RDB快照情况下,当保存失败后,是否允许用户执行写入操作
rdbcompression yes
# 在导出RDB数据文件时,是否进行压缩处理
rdbchecksum yes
# 导出RDB数据文件时后,是否执行校验
dbfilename REDIS_CLUSTER_SVR_03.rdb
# RDB数据库文件的本地文件名
dir /app/redis/data/REDIS_CLUSTER_SVR_03
# RDB数据库文件的存放目录
slave-serve-stale-data yes
# 在master/slave之间的连接中断,或slave正在从master节点同步数据时,是否响应client的请求
# yes,响应client的请求
slave-read-only yes
# 设置slave节点只读模式
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
# repl-diskless-sync特性还处于实验阶段,设置为”no”,将此特性关闭
slave-priority 100
Requirepass "xxx.123456"
# 设置master节点的密码,用于master节点
#masterauth "xxx.123456"
# 指定主节点的密码,用于slave节点
maxclients 1000
# 设置最大连接数
maxmemory 512mb
# 设置redis的最大内存
maxmemory-policy volatile-lru
# 当redis使用的内存达到maxmemory时,使用哪种删除策略清理内存
maxmemory-samples 3
# 执行maxmemory-policy时对N个Key进行检查
appendonly yes
# 是否启用Append Only Mode
appendfilename "REDIS_CLUSTER_SVR_03.aof"
# Append Only File的文件名
appendfsync everysec
# 设置AOF模式同步数据到磁盘方式
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
a148
# 每次执行LUA SCRIPTING的最长时间
slowlog-log-slower-than 10000
# 记录执行时长超过10000 microseconds的命令
slowlog-max-len 128
# slowlog的长度
latency-monitor-threshold 0
# 设置latency monitor执行的间隔,"0"为关闭引功能
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

然后启动redis,查看运行。
#启动redis
/app/redis/bin/redis-server /app/redis/conf/REDIS_CLUSTER_SVR_03.conf
# 查看运行进城
ps -ef|grep redis

对另外两台进行相似的配置,然后启动,至此三台单节点redis搭建完成

二、设置主备

在其中两台机器的配置文件中添加: slaveof masterIp port 即可

三、配置哨兵

创建如下目录和文件

cd /app/redis/conf
mkdir /app/redis/sentinel/REDIS_CLUSTER_SEN_01
touch REDIS_CLUSTER_SEN_01.conf


修改sentinel配置文件: vi REDIS_CLUSTER_SEN_01.conf

对配置文件中添加如下配置:
daemonize yes
port 8001
bind 10.202.105.68
#当前节点IP
sentinel announce-ip "10.202.105.68"
dir "/app/redis/sentinel/REDIS_CLUSTER_SEN_01"
pidfile "/app/redis/run/REDIS_CLUSTER_SEN_01.pid"
loglevel notice
logfile "/app/redis/log/REDIS_CLUSTER_SEN_01.log"
#sentinel monitor 集群名 主节点IP 主节点port slave数量
sentinel monitor REDIS_CLUSTER 10.202.105.68 8080 2
sentinel failover-timeout REDIS_CLUSTER 60000
sentinel auth-pass REDIS_CLUSTER admin.123
sentinel config-epoch REDIS_CLUSTER 0
sentinel leader-epoch REDIS_CLUSTER 0

启动sentinel,并查看哨兵进程:
/app/redis/bin/redis-sentinel /app/redis/conf/REDIS_CLUSTER_SEN_01.conf
ps -ef|grep redis

对另外两个节点进行相似的配置并启动

至此,sentinel模式的redis高可用集群搭建完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: