redis安装,使用,包括哨兵、集群等等

安装

  • 通过wget 下载安装
  • 解压
  • make

配置后台启动和配置密码

	修改redis.conf 里daemonize no 为daemonize yes,默认不守护进程运行,yes是通过pid监听 密码配置requirepass 
	src/Redis-server redis.conf
	关闭 ./src/redis-cli shutdown 如果有密码的话,进入cli里输入密码在shutdown

配置主从同步

  • 使用info replication 查看当前节点的主从配置
	修改文件redis.conf 里 replicaof <masterip> <masterport> 为replicaof 主节点ip 端口
	masterauth <master-password> 为 masterauth 主节点密码
	
	这里对主节点不做任何操作,只对从节点配置
  • 注意事项:
	 redis版本需要一致,密码对应设置一致比较好
	 Redis设置bind 0.0.0.0 ,所有可以访问,或者只对那台访问
	 关闭防火墙,或者开启redis端口,只要从服务器可以连接到主服务器就可以了
	 可以根据配置文件查看相应配置需求
	 目前aof无磁盘同步,通过内存复制还在测试阶段,目前还是使用rdb磁盘

哨兵模式

引子
  • Master挂了,如何保证可读性,实现继续读写
什么是哨兵
	Sentinel(哨兵)是用于监控redis集群中master状态的工具,是redis高可用解决方案,哨兵可以监视一个或多个redis master服务,以及这些master服务的所有从服务;当某个master服务宕机后,会把这个master下的某个从服务升级为master来替代已宕机的master继续工作。
配置哨兵监控master
  • 创建并配置sentinel.conf文件
	Port、pidfile、dir、deamonize、protected-mode no、logfile
  • 核心配置
	 #告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效
	 sentinel monitor <master-name> <ip> <redis-port> <quorum>
	 #设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。
	 sentinel auth-pass <master-name> <password>
	 #这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒
	 sentinel down-after-milliseconds <master-name> <milliseconds> 
	 #这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
	 sentinel parallel-syncs <master-name> <numslaves> 
	 #failover-timeout 可以用在以下这些方面:     1. 同一个sentinel对同一个master两次failover之间的间隔时间。   2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。    3.当想要取消一个正在进行的failover所需要的时间。    4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。
	 sentinel failover-timeout <master-name> <milliseconds>
  • 启动哨兵X3

      Redis-sentinel sentinel.conf
    
  • 测试

	1、挂掉主节点,看slave是否成为master
	2、Master恢复,是否为slave
	3、查看相关信息
		连接redis-cli -a 密码 -h ip -p 端口(26379)
		#查看lg-master下master节点信息
		Sentinel master lg-master
		#查看lg-master下的slaves节点信息
		Sentinel slaves lg-master
		#查看lg-master下的哨兵节点信息
		Sentinel sentinels lg-master
  • 结论
	Master挂了以后,由于哨兵监控,剩余slave会进行选举,选举后其中一个成为master,当原来的master恢复后,他会成为slave
  • 注意事项:
	1、配置redis主从时master没有配置replication 相应配置,如果没有配置的话,在使用哨兵时,master重启后显示其他节点为down
	2、主要哨兵配置核心,仔细检查,尤其down-after-milliseconds
	3、关闭防火墙,或者开启sentinel端口
	4、设置bind 为0.0.0.0 或者填写对应ip 
	5、统一所有的密码,不要漏了某个节点没有设置

集群与环境准备

	主要是为了解决一主多从主机宕机后1到2秒数据丢失和恢复主机后同步数据会丢失几秒的
	前面我们一起学习了主从以及哨兵,他们可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master-slave成为集群。
	那么redis-cluster集群诞生了,他可以支撑度多个master-slave,支持海量数据,实现高可用与高并发
	哨兵模式其实也是一种集群,他能够提高读请求的并发,但是容错方面可能会有一些问题,比如master同步数据给slave同步数据给slave的时候,这其实是异步复制吧,这个时候master挂了,那么slave上的数据就没有master新,数据同步需要时间的,1-2秒的数据丢失,master恢复并转换成slave后,新数据则丢失。
  • 特点
	1、每个节点知道彼此之间的关系,也会知道自己的角色,当然他们也会知道自己存在与一个集群环境中,他们彼此之间可以交互和通信,,比如ping pong,那么这些关系都会保存到某个配置文件中,每个节点都有,这个我们在搭建的时候会配置的
	2、客户端要和集群建立连接的话,只需要和其中一个建立关系就行。
	3、某个节点挂了,也是通过超过半数的节点来进行的检测,客观下线后主从切换,和我们之间在哨兵模式中提到的是一个道理
	4、Redis中存在很多的插槽,又可以称之为槽节点,用于存储数据,这个先不管,后面再说
集群容错
	构建redis集群,需要至少三个节点做为master,以此组成一个高可用的集群,此外每个master都需要配置一个slave,所以整个集群需要6个节点,这个是最经典的redis集群,也可称为三主三从,容错性更佳,所以在搭建的时候需要有6台虚拟机,请准备好6台虚拟机,也可以克隆
	集群也可以是在但服务器构建,称为伪集群,但是在生产环境肯定是真的,所以建议6台
	克隆关闭redis
  • Redis.conf 配置
	#开启集群模式
	Cluster-enabled yes
	#每一个节点需要有一个配置问价,需要6份,每个节点处于集群的角色都需要告诉其他所有节点,彼此知道,这个文件用于存储集群模式状态等信息
	Cluster-config-file nodes-201.conf
	#超时时间,超时则认为master宕机,随后主备切换
	Cluster-node-timeout 5000
	#开启aof
	Appendonly yes
  • 启动6个redis实例
	1、启动6台
	2、如果启动过程出错,把rdb等文件删除清空
  • 创建集群
	Redis 3.*版本,需要redis-trib.rb来构建集群,最新版本是c语言编写
	#创建集群。主节点和从节点比例为1
	Redis-cli --cluster create ip1:port1 ip2:port2....  --cluster-relicas 1
	
	Slot:槽,用于装数据,主节点有,从节点,从节点没有
  • 检查集群信息
	redis-cli --cluster check 192.168.195.121:6379
  • 通过槽点查看所有
	./src/redis-cli  -c -h 192.168.195.122 -p 6379
  • 注意事项:
	1、防火墙关闭,切记,切记,切记,这里集群的总线程端口为16379,否则构建集群时一直在等待
	详细迁移导入可以参考下面链接
	https://www.cnblogs.com/zhoujinyi/p/11606935.html
	https://www.cnblogs.com/kevingrace/p/7910692.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值