首页 > 编程知识 正文

redis入门指南第二版pdf(Redis热点key解决方案,java实用教程第五版耿祥义pdf下载)

时间:2023-05-06 21:05:00 阅读:121355 作者:2337

在服务端读取和访问数据时,往往会对数据进行分片,过程中在主机服务器上访问相应的密钥,如果超出服务器的限制,就会引起热点密钥问题。

2热点密钥的危害

=====================================

流量过于集中,突破物理网卡的极限

请求太多,缓存切片服务中断

穿透数据库

当有一个热点Key请求的主机超过该主机的网卡上限时,通信过于集中,服务中的其他服务无法正常运行

=()”

如果热点过于集中,热点密钥缓存过多,超过当前缓存容量,缓存切片服务将崩溃

=()”

缓存服务崩溃,如果此时发出更多请求,则缓存将缓存在后台数据库中,缓存将穿透,进而导致缓存雪崩。

3解决方案

=====================================

常规解决方案主要集中在客户端和服务器端改造上。

3.1服务端缓存方案

客户端将请求发送到服务器。 服务器是多线程服务,本地具有基于Cache LRU策略的缓存空间。 如果服务器自身拥塞,服务器将直接返回请求,而不进一步向数据库发送请求,仅在服务器自身平滑时将客户端请求发送到数据库,然后将数据重新写入缓存。 这样就完成了缓存的访问和重建。

禁用缺陷缓存,多线程构建缓存问题

缓存丢失,缓存构建问题

潦草的读法

3.2使用memcache、Redis

在客户端上单独部署缓存。 使用中,客户端首先访问服务层,然后访问同一主机上的缓存层。 此解决方案具有就近访问、快速、无带宽限制的优点。 但是也有问题:

内存资源浪费

潦草的读法

3.3本地缓存

缺陷需要事先了解热点

缓存容量有限

不均匀的时间增加

热点密钥泄漏

3.4随机后缀

将Redis用于缓存可以将热点Key缓存查询的压力分布在多个Redis节点上。

加随机后缀。

场景是非常热点的数据,数据更新不太频繁,但查询非常频繁,如何确保几乎100%的缓存命中率?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。