redis-cluster集群

afanti 2020-06-08

1.redis集群必不可少的工具

1.1 redis

1.2 redis集群搭建工具:redis-trib.rb(类似于IIS协调调度)

     将redis分为主从节点

1.3 Ruby 安装Ruby的运行环境

1.4 Ruby环境下的redis驱动:redis-3.2.2.gem

2. 什么是高性能高并发集群

2.1 集群特点:

分担客户端压力,提高服务器效率(高并发)

解决单点故障问题(高可用,删除服务节点,增加服务节点)

2.2 集群类型

对称集群:集群实例角色地位相同(特点:数据计算)

非对称集群:集群实例校色地位不相同(特点:数据存储-读写分离, Master , Slave)

redis是非对称集群(redis是作为数据存储)

3.redis集群演化redis-cluser

redis哨兵模式(Sentinel):redis集群会有一个Master节点和多个Slave节点,通过Master节点写入数据到redis,然后Copy Master中的数据到Slaver节点的redis中,slave有多个,一个Master和多个Slave组成集群,从集群中读数据,即从Master和多个Slave中读数据。当哨兵就是监控Master和Slave的,当哨兵发现Master宕机之后,会从Slave中选择一个作为Master。

问题:

单点写入压力大

当Master宕机之后,重新选择Master的过程中,系统不会响应

解决哨兵模式的缺点

使用Ruby redis-trib.rb集群搭建工具将数据分散写入多个Master节点,然后通过Master copy到不同的从节点,当其中的某个Master宕机之后,其他的Master还是可以继续写入数据,并且Rube工具会选择新的Slave作为Master。(必须要有3个Master节点)

主从节点同步数据方式:

全量

增量

数据同步会出现的问题

延时

数据一致性

Master是怎么分片:通过hash一致性算法

4.redis-cluster如何搭建

集群配置文件需要配置:

port  6380 #端口

appendonly yes #数据的保存为aof格式

cluster-enables yes  #是否开启集群

appendfilename "appendonly.6380.aof"  #数据保存文件

cluster-config-file nodes.6380.config   #是否开启集群节点的配置文件(要读取的配置文件)

cluster-node-timeout 15000    #集群节点连接的超时时间

cluster-slave-validity-factor 10   #校验从节点是否能够进行数据复制,校验10次

cluster-migration-barrier  1  #是否配置数据转移

cluster-require-full-coverage yes    #是否在主从节点之间开启全量复制

5.redis-cluster内部核心原理

相关推荐

DiamondTao / 0评论 2020-08-30