Redis的持久化操作( 二 )


2.微服务的处理方式: 利用断路器返回执行的业务数据即可不执行数据库操作 从而保护了数据库.
3.微服务处理方式: API网关设计. 不允许做非法操作
3.2 缓存击穿说明: 由于redis中 某个 热点数据 由于超时/删除等操作造成数据失效 .同时用户高并发访问该数据,则可能导致数据库宕机.该操作称之为 缓存击穿.
解决方案: 可以采用多级缓存的设计. 同时数据的超时时间采用随机数的方式.
Redis的持久化操作文章插图
3.3 缓存雪崩说明: 由于redis内存 数据大量失效 .导致用户的访问命中率太低.大量的用户直接访问数据库,可能导致数据库服务器宕机. 这种现象称之为缓存雪崩.
解决:
1.采用多级缓存.
2.设定不同的超时时间
3.禁止执行 flushAll等敏感操作.
4.Redis分片机制4.1 Redis分片说明说明: 如果需要Redis存储海量的内存数据,使用单台redis不能满足用户的需求,所以可以采用Redis分片机制实现数据存储.
注意事项:
如果有多台redis,则其中的数据都是不一样的…
Redis的持久化操作文章插图
4.2 Redis部署搭建端口:6379/6380/6381
4.2.1 准备配置文件:6379.conf 6380.conf 6381.conf
Redis的持久化操作文章插图
4.2.2 修改端口号只修改80/81的端口即可
Redis的持久化操作文章插图
4.3 Redis分片测试
Redis的持久化操作文章插图
4.4 一致性HASH算法4.4.1 概念一致性哈希算法在1997年由麻省理工学院提出 , 是一种特殊的哈希算法 , 目的是 解决分布式缓存的问题。
[1] 在 移除 或者 添加 一个服务器时 , 能够 尽可能小地改变 已存在的服务请求与处理请求服务器之间的 映射关系。 一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table , DHT) 中存在的动态伸缩等问题 [2]。
4.4.2 原理说明知识复习:

  1. 常规hash由多少位16进制数组成??? 8位16进制数组成 2^32次方
  2. 如果对相同的数据进行hash计算问结果是否相同??? 结果必然相同.

Redis的持久化操作文章插图
4.4.3 特性一平衡性①平衡性是指hash的结果应该平均分配到各个节点 , 这样从算法上解决了负载均衡问题.
实现平衡性的方案: 引入虚拟节点
Redis的持久化操作文章插图
4.4.3 特性二单调性②单调性是指在新增或者删减节点时 , 不影响系统正常运行 [4]。
特点:在进行数据迁移时,要求尽可能小的改变数据.
Redis的持久化操作文章插图
4.4.4 特性三分散性③分散性是指数据应该分散地存放在分布式集群中的各个节点(节点自己可以有备份) , 不必每个节点都存储所有的数据 [4]。
俗语: 鸡蛋不要到放到一个篮子里
4.5 SpringBoot整合Redis分片4.5.1 编辑properties配置文件
Redis的持久化操作文章插图
4.5.2 编辑配置类
Redis的持久化操作文章插图
4.5.3 修改AOP缓存注入说明:将AOP中的注入对象切换为分片对象
Redis的持久化操作文章插图
5 Redis哨兵机制5.1 分片机制存在的问题说明: redis分片主要的作用是实现内存数据的扩容.但是如果redis分片中有一个节点宕机,则直接影响所有节点的运行. 能否优化?
实现策略: 采用Redis哨兵机制实现Redis节点高可用.
5.2 Redis节点主从配置5.2.1 准备主从节点1).关闭redis分片的节点,之后复制配置文件准备哨兵的配置.
Redis的持久化操作文章插图
2).复制分片的目录 改名为sentinel
Redis的持久化操作文章插图
3).删除多余的持久化文件,保存redis配置文件
Redis的持久化操作文章插图
4).启动3台Redis服务器
Redis的持久化操作文章插图
5.2.2 实现redis主从命令: info replication 检查redis节点的状态信息
Redis的持久化操作文章插图