1、引入pom,redisson、jackson-dataformat-avrd

2、redisson支持4种链接redis的方式:

  Cluster(集群)

  Sentinel servers(哨兵)

  Master/Slave servers(主从)

  Single server(单机)

--------------------------------------------------------------------------------------------------------------

redis一般在企业中做分布式缓存,可以大大的减小高并发的开销。企业中如果只有一台redis,肯定会造成数据丢失,无法挽救

redis集群: 两台为一组,一台主机一台备机 ,平时主机工作,备机不工作 ,备机每隔几秒就会给主机发送一个ping ,主机在正常工作的时候会发送一个peng 给备机 ,如果不返回pang,可能会连续ping三次,都不返回那么备机就会上,备机里有主机的全部内容,这个叫做心跳检测机制(高可用的作用),主从热备

redis中的slot槽值得范围是0-16383,一共是16384个槽值,可以将这些槽值分配给每组机器(目前在国内没有达到这么大集群的)

我们在存入redis数据的时候,使用key,value的键值对存值,那么存储前会将key使用crc16算法进行计算,会得出一个纯数字的值,使用这个数字除以16384取余数,余数落到那个slot槽值得范围内就将这个key,value存到对应的机器上,获取数据的时候也是如此。起到了一个负载均衡的作用,集群数越多越均匀,整体的容量要比单机版的容量要大,也就是扩容。

现在来说说多台reids或者是Redis集群,服务器宕机要怎么解决?
宕机则需要分为在主从模式下区分来看:
1、从的redis宕机怎么解决?
  配置主从复制的时候才配置从的redis, 从的会从主的redis中读取主的redis的操作日志,来达到主从复制。
    1.只要把从的redis重新启动,再和主的进行连接就可以
    2.如果从redis上面做数据的持久化,可以直接连接到主的上面,只要实现增量备份

2、主的redis宕机怎么解决?
  要先确认是否做持久化,若没有做持久化,重新启动主的redis就会造成数据丢失。
    1.先把从的redis升级为主的redis. 执行slave of one命令
    2.原来的主的可以重新启动,作为从的redis, 连接到主的redis上面做主从复 制

是不是上面的操作看起来很复杂,其实可以使用Redis 提供哨兵 机制来简化上面的操作。

哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:

监控主数据库和从数据库是否运行正常;
主数据出现故障后自动将从数据库转化为主数据库;
单个哨兵的架构:

redisson使用bitmap redisson使用集群_redis

 

多个哨兵的架构:

redisson使用bitmap redisson使用集群_redisson使用bitmap_02

 

高可用架构

redisson使用bitmap redisson使用集群_redisson使用bitmap_03


哨兵的配置:

redisson使用bitmap redisson使用集群_Redis_04

 

 

复制redis中sentinel.conf,根据情况进行配置

#当前Sentinel服务运行的端口
 port 26379#Sentinel服务运行时使用的临时文件夹
 dir /tmp#sentinel连接的主redis, 此redis连接端IP端口是172.17.0.1 6379
 #将此redis判断为失效至少需要1个 Sentinel进程的同意, 只要同意Sentinel的数量不达标,自动failover就不会执行
 sentinel monitor master 172.17.0.1 6379 1#指定了在执行故障转移时,最多可以由多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长
 #完成故障转移所需的时间就越长
 sentinel parallel-syncs master 1#如果未在18000ms内完成故障迁移,就默认未失败
 sentinel failover-timeout master 180000#redis的sentinel的日志
 logfile "/var/log/sentinel_log.log"


 

可以使用哨兵搭建高可用服务器,哨兵模式还提供其他功能,比如监控、通知、为客户端提供配置等。

Redis为什么在线上部署的时候一般不设置密码?

redisson使用bitmap redisson使用集群_redisson使用bitmap_05


图中可以看出客户在访问网址的时候是先进入域名解析器,域名解析器将网址解析成静态的ip,这个静态的ip其实就是负载均衡器(注:负载均衡器是即可以访问内网也可以访问外网),负载均衡器会根据需求来找到对应的项目模块服务器,再由项目模块的服务器找到对应的mysql集群或者是redis集群,tomcat和集群一般都在内网当中,所以不用将redis设置密码。