【Linux】【Services】【Cache】使用Sentinel搭建高可用Redis

1. 简介

1.1. 一些基础概念请参考 http://www.cnblogs.com/demonzk/p/7453494.html

1.2. 几种常用的集群方式。

-- Redis Sentinel:本次使用的方式

-- Zookeeper+Redis:比较重量级,需要在代码层实现

-- Codis:豌豆荚在使用的方式

-- 

2. 环境:

2.1.机器列表

功能与组件 机器名 服务IP 管理IP Processor Cores RAM Storage 备注
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE01 10.30.2.45 172.16.0.45        
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE02 10.30.2.46 172.16.0.46        
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE03 10.30.2.47 172.16.0.47        

3. 安装与配置:

3.1. redis-server

yum默认安装

#安装redis时候会默认安装redis-server和redis-sentinel
yum -y install redis
#这是一个由Ruby写的管理工具,可以不装,有机会再后面详解
yum -y install redis-trib

创建一个单独的分区给redis存数据

lvcreate -L 10G -n lv_redis vg_system

mkfs.xfs /dev/mapper/vg_system-lv_redis

mkdir -p /data/redis

echo -e "/dev/mapper/vg_system-lv_redis	/data/redis		defauts	0 0" >> /etc/fstab

mount -a

chown redis:redis /data/redis

修改配置文件/etc/redis.conf

#注释掉这一条
#bind 127.0.0.1

#如果开启这个的话,其他机器连接进来的请求是无法执行的
protected-mode no
daemonize yes
#写入到本地文件
appendonly yes
#AOF和RDB文件的位置,默认是/var/lib/redis
dir /data/redis

#从节点需要开启这条指令
slaveof 10.30.2.45 6379

按照顺序从10.30.2.45开始启动服务

systemctl start redis && systemctl enable redis

在10.30.2.45上检查下节点状态

[root@hctjoscache03 ~]# redis-cli -h 10.30.2.45
10.30.2.45:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.30.2.46,port=6379,state=online,offset=869,lag=1
slave1:ip=10.30.2.47,port=6379,state=online,offset=883,lag=0
master_repl_offset:883
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:882

3.2. redis-sentinel

修改/etc/redis-sentinel.conf

sentinel monitor mymaster 10.30.2.45 6379 2

启动服务

systemctl start redis-sentinel && systemctl enable redis-sentinel
原文地址:https://www.cnblogs.com/demonzk/p/8446180.html