Redis 缓存设计原则

基本原则

  • 只应将热数据放到缓存中
  • 所有缓存信息都应设置过期时间
  • 缓存过期时间应当分散以避免集中过期
  • 缓存key应具备可读性
  • 应避免不同业务出现同名缓存key
  • 可对key进行适当的缩写以节省内存空间
  • 选择合适的数据结构
  • 确保写入缓存中的数据是完整且正确的
  • 避免使用耗时较长的操作命令,如:keys *
    • Redis默认配置中操作耗时超过10ms即视为慢查询
  • 一个key对应的数据不应过大
    • 对于string类型,一个key对应的value大小应控制在10K以内,1K左右更优
    • hash类型,不应超过5000行
  • 避免缓存穿透
    • 数据库中未查询到的数据,可在Redis中设置特殊标识,以避免因缓存中无数据而导致每次请求均达到数据库
  • 缓存层不应抛出异常
    • 缓存应有降级处理方案,缓存出了问题要能回源到数据库进行处理
  • 可以进行适当的缓存预热
    • 对于上线后可能会有大量读请求的应用,在上线之前可预先将数据写入缓存中
  • 读的顺序是先缓存,后数据库;写的顺序是先数据库,后缓存
  • 数据一致性问题
    • 数据源发生变更时可能导致缓存中数据与数据源中数据不一致,应根据实际业务需求来选择适当的缓存更新策略:
      • 主动更新:在数据源发生变更时同步更新缓存数据或将缓存数据过期。一致性高,维护成本较高。
      • 被动删除:根据缓存设置的过期时间有Redis负责数据的过期删除。一致性较低,维护成本较低。

缓存过期算法

  • LRU
    • 淘汰最后使用时间距当前时间较长的数据
  • LFU
    • 淘汰某段时间内的使用频次较低的数据
  • FIFO
    • 淘汰先写入的数据

版权声明

本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

如有问题, 请发送邮件和作者联系。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏韩伟的专栏

高性能服务器架构思路( 五 ) : 分布式缓存

在高性能的服务器架构中,常用的缓存和分布两种策略,往往是结合到一起使用的。只有清楚的理解这些技术的原理,并且和实际的业务场景结合起来,才能真正的做出满足应用要求...

3.8K00
来自专栏hbbliyong

用Visual Studio Code写Node.j

介绍 vsc的宣传语是: 一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。 按它说的...

397130
来自专栏林欣哲

10 分钟看懂分布式事务

什么是分布式事务 问题的引出 先看一张图,一个电商平台的架构图。 ? 对于用户来说的一个创建订单的过程,背后很可能跨越了多个应用服务。涉及诸如:订单、库存、...

39250
来自专栏开源项目

听说,你也在做日志分析? | 码云周刊第 37 期

— 01 — 项目名称:赛克蓝德日志分析软件 seci-log ? 项目简介: 赛克蓝德日志分析软件,主要对日志进行收集,格式化,然后进行分析,日志可以是系...

53090
来自专栏我是攻城师

从App的角度看进程和线程

在现在人人都有一部手机或电脑的年代,我们几乎天天都在使用各种app,如微信,QQ,抖音,优酷等等软件,表面上我们是与各种app交互,但如果站在操作系统的角度来看...

7020
来自专栏Laoqi's Linux运维专列

初识Jenkins(Ⅰ)

12830
来自专栏coding

pyenv,让你轻松切换各种python版本

1.2K60
来自专栏BestSDK

微软发布 Windows 10 SDK build 15042

微软向开启了快速更新的 PC 平台开发者们推送了 Windows 10 SDK build 14046 预览版本,带来了一些微小的新特性。 ? 微软表示该 SD...

30840
来自专栏开源优测

性能测试必备监控技能windows篇13

前言 在手头没有专门的第三方监控时,该怎么监控服务指标呢?本篇就windows下监控进行分享,也是我们在进行性能测试时,必须掌握的。下面我们就windows下常...

45950
来自专栏逸鹏说道

分布式小文件系统fastdfs与weedfs的对比

小编小文件存储用的一直是Mongodb,Tair和FastDFS风评一直很不错,最近1年Net界用的比较多的基本上都是FastDFS或者Mongodb(分布式图...

2.1K70

扫码关注云+社区

领取腾讯云代金券