redis主从和HA配置
2016-04-11 00:00
801 查看
redis安装
redis配置
redis主从配置
redis的主从配置非常简单,不用想mysql的主从那样还要Proxy,只要简单的一句话就可以了。
1.在从redis的配置文件(redis.conf)中添加一句话
2.重启从redis
3.测试
在master中输入以下命令
在slave中输入以下命令
如果在slave中看到下面这些 就成功啦
另外salve中是不能写入数据的会报错的。
redisHA
Redis Sentinel
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中
一、Sentinel作用:
1):Master状态检测
2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave
3):Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
二、Sentinel配置:
1.新建配置文件
2.添加内容
3.启动节点
4.设置开机启动
三、注意点:
1):首次启动时,必须先启动Master
2):Sentinel 只在 server 端做主从切换,app端要自己开发(例如Jedis库的SentinelJedis,能够监控Sentinel的状态)
3):若Master已经被判定为下线,Sentinel已经选择了新的Master,也已经将old Master改成Slave,但是还没有将其改成new Master。若此时重启old Master,则Redis集群将处于无Master状态,此时只能手动修改配置文件,然后重新启动集群
到此redis集群配置完毕,后面会补上java的代码
[code=plain]yum install gcc yum install tcl wget http://download.redis.io/releases/redis-3.2.0.tar.gz tar xzf redis-3.2.0.tar.gz cd redis-3.2.0 make make test make install
redis配置
[code=plain] vi /etc/init.d/redis #!/bin/bash # # Init file for redis # # chkconfig: - 80 12 # description: redis daemon # # processname: redis # config: /etc/redis.conf # pidfile: /var/run/redis.pid source /etc/init.d/functions #BIN="/usr/local/bin" BIN="/usr/local/bin" CONFIG="/etc/redis.conf" PIDFILE="/var/run/redis.pid" ### Read configuration [ -r "$SYSCONFIG" ] && source "$SYSCONFIG" RETVAL=0 prog="redis-server" desc="Redis Server" start() { if [ -e $PIDFILE ];then echo "$desc already running...." exit 1 fi echo -n $"Starting $desc: " daemon $BIN/$prog $CONFIG RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stop $desc: " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e /var/lock/subsys/$prog ] && restart RETVAL=$? ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1 esac exit $RETVAL chmod 755 /etc/init.d/redis
redis主从配置
redis的主从配置非常简单,不用想mysql的主从那样还要Proxy,只要简单的一句话就可以了。
1.在从redis的配置文件(redis.conf)中添加一句话
[code=plain] slaveof x.x.x.x 6379 #添加这句话
2.重启从redis
[code=plain] service redis restart
3.测试
在master中输入以下命令
[code=plain]/usr/local/bin/redis-cli set yangtc shuai
在slave中输入以下命令
[code=plain]/usr/local/bin/redis-cli keys *
如果在slave中看到下面这些 就成功啦
[code=plain]127.0.0.1:6379> keys * 1) "yangtc"
另外salve中是不能写入数据的会报错的。
[code=plain]127.0.0.1:6379> set yangtc haoshuai (error) READONLY You can't write against a read only slave.
redisHA
Redis Sentinel
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中
一、Sentinel作用:
1):Master状态检测
2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave
3):Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
二、Sentinel配置:
1.新建配置文件
[code=plain]vi sentinel.conf
2.添加内容
[code=plain]#指定sentinel端口号 port 26379 #指定sentinel为后台启动 daemonize yes #指定Sentinel去监视一个名为 mymaster 的Master, #Master的IP地址为192.168.100.211,端口号为6379, #最后的1表示当有1个Sentinel检测到Master异常时才会判定其失效,即只有当1个Sentinel都判定Master失效了才会自动迁移,如果Sentinel的数量不达标,则不会执行自动故障迁移 sentinel monitor mymaster 27.151.1.52 6379 1 #指定Sentinel判定Master断线的时间。(单位为毫秒,判定为主观下线SDOWN) sentinel failover-timeout mymaster 900000 #指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态 sentinel config-epoch mymaster 0 sentinel leader-epoch mymaster 0 logfile "/root/dudoo/logs/redis/sentinel.log"
3.启动节点
[code=plain][root@iZ30ik2gmljZ redis]# mkdir -p /root/dudoo/logs/redis/ [root@iZ30ik2gmljZ redis]# /usr/local/bin/redis-sentinel sentinel.conf
4.设置开机启动
[code=plain] echo "/usr/local/bin/redis-sentinel /usr/local/redis/sentinel.conf" >> /etc/rc.local
三、注意点:
1):首次启动时,必须先启动Master
2):Sentinel 只在 server 端做主从切换,app端要自己开发(例如Jedis库的SentinelJedis,能够监控Sentinel的状态)
3):若Master已经被判定为下线,Sentinel已经选择了新的Master,也已经将old Master改成Slave,但是还没有将其改成new Master。若此时重启old Master,则Redis集群将处于无Master状态,此时只能手动修改配置文件,然后重新启动集群
到此redis集群配置完毕,后面会补上java的代码
相关文章推荐
- 干货--Redis池化联接和搭建分布式集群
- Redis - 安装
- 干货--Redis 30分钟快速入门
- Redis学习一
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
- Redis主从复制
- Redis配置参数说明
- 使用python对redis操作
- Redis中的简单动态字符串
- Redis命令-有序集合-zlexcount
- Linux上安装使用Redis
- Redis的高级应用
- Linux下redis的安装
- Redis学习入门
- Redis解决Tomcat共享Session
- MAMP下安装phpredis扩展(微原创)
- Redis中的字典
- 记录一次Centos7下php无法连接redis
- Redis命令-有序集合-zinterstore
- Mac下安装redis(微原创)