Redis 缓存入门:什么数据适合放进 Redis
【摘要】 Redis 是最常用的内存数据库,但不是所有数据都适合缓存。本文讲清 Redis 的适用场景、三种常见用法和缓存更新的基本套路。
Redis 是最常用的内存数据库,读性能是 MySQL 的几十倍。但「什么都往 Redis 里塞」是常见反模式,先弄清什么数据值得进缓存。
一、三类适合进 Redis 的数据
一是读多写少的热点数据:商品详情、配置字典,命中率高收益才大。二是需要超时语义的数据:验证码、会话 token,用 SET key value EX 60 一条命令自带过期。三是计数与排行:INCR 秒级计数、ZADD 做排行榜,天然原子性不用自己加锁。
二、三种常用结构对应三种场景
String 做缓存和计数器;Hash 存对象(HSET user:1 name tom,比整体序列化省得反序列化);ZSet 做排序榜单(ZADD rank 100 tom,ZREVRANGE 取 Top10)。用对结构比调参数更影响性能。
三、缓存更新的基本套路
推荐 Cache Aside:读时先查缓存,未命中查库并回填;写时先更新数据库再删除缓存(不是更新缓存)。删除而不是更新,是因为并发写时更新容易写进旧值。再给回填加个随机过期时间,避免同一时刻大量 key 同时失效把数据库打挂。
记住一个判断标准:如果一份数据读取频率不高、或者一致性要求极强(比如账户余额的扣减链路),先别上缓存,直接查库反而更简单可靠。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)