redis概述,redis 简介

前言如果你已经简单的使用过Redis,那么恭喜你,你已经进入一个新的阶段更深层次了解Redis,本文是对之前学习的一个总结以及对Redis的深层次了解。一、Re

如果只有一台Redis服务器,如果服务宕机,客户端会直接请求mysql。如果请求太多,一个失败mysql也会宕机。服务可以继续正常运行。

现在我们知道了为什么使用集群,我们来谈谈它们的特点。

主机负责向从机写入数据并同步数据。读取数据是从从机查询,实现读写分离。写命令由主机执行,读命令由主机查询。从机机制。

Redis 提供哨兵命令。 Sentinel 是一个独立的进程,用于监视集群中的Redis 服务器并向每个服务器发送请求。在这种情况下,使用一种机制来指示发生了故障。从从机下载命令。选择一位作为主持人。当主机恢复后,主机继续作为主机运行,而之前作为主机的从机作为从机运行。

密钥过期策略

你设置了一个密钥过期时间,但是当这个时间过期后,这些过期的密钥会怎样呢?

处理过期密钥有三种方式:立即删除、延迟删除、定时删除。下面对这三种方法进行解释。

立即删除(高实时) : 到期后执行回调函数,立即释放内存。下次使用密钥时不会立即删除它。它根据记录的状态来决定是否删除,但缺点是占用内存,而且是周期性删除(实时性高):缓存会定期删除所有过期的key进程。

72b33e6e46194194b0e9f788b925a0db~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717812401&x-signature=z9%2F0aGStuZTujqfjFSyeP9DiVIA%3D

缓存入侵

重要的一点是没有缓存或数据库。

每次请求key时,都会先去缓存发现key不存在,然后去数据库发现key不存在。次数过多会使数据库超载。这种现象称为缓存入侵。

那么有什么解决办法吗?

在缓存中设置一个空对象(如果访问缓存发现不存在,访问数据库发现不存在,则返回一个空对象到缓存中。下次(无空对象)访问时返回对象)。再次访问数据库,返回空对象) 参数验证(与数据库交互较少) 缓存击穿

如果数据库中有数据需要访问,但某个时刻某个特定的热点key过期,发生大量的查询访问而你发现数据不在缓存中,数据库就会得到一个扁平化的结果胎。这种被访问导致数据库崩溃的现象称为缓存损坏。

那么有什么解决办法吗?

访问缓存时,如果发现缓存不存在,请设置合理计算的锁过期时间,避免因访问过多而崩溃。现金雪崩

如果大量热点key过期或者Redis服务失败,就会导致大量请求到达数据库,导致数据库崩溃。

那么有什么解决办法吗?

随机化有效期以避免同时发生故障。 将不同的热点密钥放置在不同的Redis服务上,以检测密钥是否过期。

你需要用你自己的语言来解释Redis总结的这些要点。了解了缓存数据的流程之后,就需要了解为什么Redis的线程模型能够持久化。你需要掌握缓存入侵。缓存崩溃和缓存雪崩的概念和解决方案,以了解关键过期策略。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84930.html

(0)
小条's avatar小条
上一篇 2024年6月1日 上午10:06
下一篇 2024年6月1日 上午10:06

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注