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