先送张壁纸
redis主从+哨兵配置(高可用):
redis主从配置非常简单 你只需要在你原来sove(从)的redis.conf基础上找到 replicaof 把注释去掉,然后跟上你master的ip加端口号就行 如果你的redis-master有密码的话 就直接把密码的注释也去掉 加上密码;如下
主的话就不用配置了 然后就直接启动 全部起来之后可以redis-cli -P (端口号)进入mester 看一下
info replication (查看主从)
可以看到我们这个主节点有三个从节点,分别是0.199:6380 、0.104:6379以及0.104:6380 那么我们在这里set一个key看看在从节点能不能取得到;
可以看到 这边就从0.104的6380这个sove里面 get到这个值了 注意 sove里面是不能set数据的哈;
那么有了主从我们就可以高枕无忧了嘛 ,并不能 因为你只搭了一主三从,如果从挂掉了还没试,还能正常运行,如果master挂掉了怎么办,挂掉了就歇逼?那是不可能的事情,那么就需要哨兵了
哨兵解读:
哨兵会对主进行心跳检测,每隔几秒钟会问一下 “master 死了没?” 主机会回复他 “我还能坚持坚持” 那就说明没死,那如果主机不回复怎么办 那么这个哨兵会判断这个主机 当场死亡,这叫主观下线;如果超过半数以上的哨兵觉得主机挂掉了,就会从剩下的sove里面选举新的master 这个时候 之前的那个主机 就叫做客观下线;
哨兵搭建:
创建一个文件夹,把哨兵的配置文件放进去,配置文件如下;
bind 0.0.0.0
# 哨兵的端口
port 26379
#监控redis的主机
sentinel monitor mymaster 192.168.0.199 6379 1
#链接redis密码
sentinel auth-pass mymaster 123456
#当redis主机挂了之后,哨兵主观认为主节点下线,切换主节点的时间默认是三十秒
sentinel down-after-milliseconds mymaster 5000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster 18000
每个配置文件除了端口号不一样其余都一样哈
在redis/bin文件夹下面有一个 redis-sentinel 也就是redis的哨兵那么启动他
./redis-sentinel /usr/loacl/redis/sent/sentinel01.conf & #后台启动
./redis-sentinel /usr/loacl/redis/sent/sentinel02.conf & #后台启动
./redis-sentinel /usr/loacl/redis/sent/sentinel03.conf & #后台启动
然后我们再查看下redis的进程;
看到有三个 sentinel 也就是三个哨兵 这个时候 你的redis主机要是挂了就可以直接切换过去了;自己试一下把,这里就不演试了;
redis集群搭建
集群和主从不一样的点,主从是sove把master的数据复制下来,本质上主从的话并没有减轻各个redis的压力,改是多少内存就是多少内存,跑不掉的;集群的话是三个主从,通过算法把key、vlue 分布到每一台服务器上,但是几台服务之间数据又是互通的,这就大大的减轻服务器的压力;如果当其中一台挂了的话,会自动把数据转到另外两台服务器上,有兴趣的话,可以深入研究下;
1、创建指定的redis-clouster的conf文件
第一行就是引入redis.conf文件 直接用纯净的redis.conf文件就好
include /usr/local/redis/etc/redis.conf
#添加端口 伪集群的话 需要更改端口
port 6379
pidfile /var/run/redis6379-218.pid
dbfilename redis6379-219.rdb
appendfilename "appendonly6379-218.aof"
cluster-enabled yes
cluster-config-file nodes6379-218.conf
daemonize yes
#需要先创建data文件夹
dir /usr/local/redis/data/
bind 0.0.0.0
#有密码的话需要添加下面
requirepass "123456"
masterauth "123456"
2、把所有的redis都启动起来 起来的时候指定这个redis-clouster配置文件
redis-server /usr/local/redis/etc/redis-6379.conf
#前面三个默认是主 也就是master 后面三个是从 sove
#有密码的话 后面要加-a pws
redis-cli --cluster create 192.168.216.128:6377 192.168.216.128:6379 192.168.0.219:6375 192.168.216.128:6378 192.168.0.219:6374 192.168.0.219:6376 --cluster-replicas 1 -a 123456
这里很好玩 它问你 你对他的配置满意吗 ,你要么不搭 要么yes 因为你不满意也没有别的配置~
4、进入查看
#进入的时候 -c是集群进入 -h是ip -p 是端口 -a是密码
redis-cli -c -h 127.0.0.1 -p 6377 -a "123456"
结束 收工 bye~