![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
shenhuxi10000
这个作者很懒,什么都没留下…
展开
-
Redis缓存失效
因为缓存失效,从而导致大量的请求怼到数据库。1、大量请求,导致数据库处理不过来,整个系统依赖数据库的功能,全部崩溃;2、单系统挂掉,其它依赖于该系统的应用也会出现不稳定,甚至崩溃;显然,不能在生产环境出现这个问题。一般,这么几种情况可能出现缓存失效。1、数据淘汰,LRU/LFU,最大内存阈值,依据内存使用情况淘汰掉旧的数据;2、数据过期 expire,超过时间了,缓存就没了。3、服务...原创 2020-02-28 22:28:32 · 391 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性
1、需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间...原创 2020-02-28 22:24:32 · 724 阅读 · 0 评论 -
redis集群方式
主从复制相当于所有的写请求,都交给master,再同步到各个slave节点,确保数据一致。主节点挂了就麻烦了,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。哨兵这个时候哨兵就出现了,为了解决单个主节点挂掉的问题,就搞多个主节点,相互之间哨兵机制监视起来。哨兵的作用就是监控Redis系统的运行状况,功能如下:1、监控主服务器和从服务器是否正常运...原创 2020-02-28 22:03:08 · 137 阅读 · 0 评论 -
Redis 缓存击穿
缓存击穿和避免方式比如,访问不存在的数据。针对高并发的场景,常用的读都会命中缓存。而如果去查不存在的数据呢?如果还照着原来的设计,就会不停的去查数据库。这就是缓存击穿. 有什么方式可以避免呢?空对象做缓存,有一定道理,但如果成千上万的过来,就占缓存空间了不是数据库里面一直是空值,缓存也为空,后面的请求不都又到数据库了嘛.问题的本质,就是判断集合中是否存在某个元素。把所有数据都放到内存,这肯...原创 2020-02-28 21:57:20 · 106 阅读 · 0 评论 -
Redis集群原理和搭建
一个系统建立集群主要需要解决两个问题:数据同步问题和集群容错问题。1. Naive方案一个简单粗暴的方案是部署多台一模一样的Redis服务,再用负载均衡来分摊压力以及监控服务状态。这种方案的优势在于容错简单,只要有一台存活,整个集群就仍然可用。但是它的问题在于保证这些Redis服务的数据一致时,会导致大量数据同步操作,反而影响性能和稳定性。2. Redis集群方案Redis集群方案基于分而...原创 2020-02-26 15:48:23 · 98 阅读 · 0 评论