基于哨兵(Sentinel)模式搭建Redis集群搭建
2018-01-27 01:28
1026 查看
这篇文章主要是想把自己搭建Redis哨兵模式集群的过程记下来,方便后面搭建的重复性工作。
首先一点,学习任何知识都要学会看官网,所以,可以参考官网进行配置。我为了省事儿,参照了公司的规范来搭建的。官网地址:https://redis.io/
有个官方下载地址,可以直接下载各个版本的Redis:http://download.redis.io/releases/
因为在Linux环境搭建,我为了省事儿,直接采写成脚本一起执行的,安装包就直接在Linux中进行下载的,如果下载不了,可以提前下载好。我选择redis3.2.8版本进行安装。
我安装的集群有三台机器,设置一主两备三哨兵。
一、首先进行Redis本身的搭建、运行:
直接运行以下脚本创建目录并安装。
对配置文件进行修改,命令:vi REDIS_CLUSTER_SVR_03.conf
将如下内容保存到 REDIS_CLUSTER_SVR_03.conf,对日志等文件/目录进行修改,并设置密码
然后启动redis,查看运行。
对另外两台进行相似的配置,然后启动,至此三台单节点redis搭建完成
二、设置主备
在其中两台机器的配置文件中添加: slaveof masterIp port 即可
三、配置哨兵
创建如下目录和文件
修改sentinel配置文件: vi REDIS_CLUSTER_SEN_01.conf
对配置文件中添加如下配置:
启动sentinel,并查看哨兵进程:
对另外两个节点进行相似的配置并启动
至此,sentinel模式的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高可用集群搭建完成。
相关文章推荐
- redis sentinel哨兵模式集群搭建教程
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
- 基于Sentinel(哨兵)搭建实现Redis高可用集群
- 基于哨兵【sentinel】模式的redis服务集群并与spring集成
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
- 搭建redis-sentinel(哨兵机制)集群
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis高可用之sentinel哨兵集群详解与搭建
- [置顶] 搭建一个简单的redis-sentinel(哨兵机制)集群
- Redis-sentinel哨兵模式集群方案配置
- Redis-sentinel哨兵模式集群方案配置
- Redis-sentinel哨兵模式集群方案配置
- 基于keepalived、redis sentinel的多实例redis集群【1】---路由以及哨兵配置
- redis主从集群搭建及容灾部署(哨兵sentinel)
- Redis集群~windows下搭建Sentinel环境及它对主从模式的实际意义
- Redis集群redis主从自动切换Sentinel(哨兵模式)
- spring session 基于 redis集群(sentinel模式)的小demo
- 搭建redis-sentinel(哨兵机制)集群
- Redis的集群方案之Sentinel(哨兵模式)(待实践)
- redis主从集群搭建及容灾部署(哨兵sentinel)