Redis缓存哪些数据?

ygtzz
  • 570

redis应该缓存热点数据,哪些属于热点数据?数据库穿透,到底指的是怎样的穿透,缓存中不可能存储所有数据,缓存中没有的数据,就会造成数据库穿透吗?

回复
阅读 694
2 个回答
然后去远足
  • 34.7k
✓ 已被采纳

Q1:

热点数据就是热点数据啊……你要是想问怎么定义“热点”,这个玩意儿是要结合自己业务需求的。

或者换个说法,“访问较为高频的数据”,但怎么算“高频”、同样还是结合自己业务需求的,别人没法给出你具体答案。

一般而言我们把数据分为三类:

  • 高频(热点):顾名思义,访问最频繁的那些数据。根据二八原则来说的话、这 20% 的数据会占据你的网站/应用的 80% 以上的流量占比。比如首页/首屏里需要展示的内容基本都可以算做热点。
  • 普通:虽然访问频次不如热点,但还是会有流量的。
  • 低频(归档、冷数据):顾名思义,一年到头也访问不了一次的那种数据,常见于日志或很长一段时间以前的历史数据。比如电商系统中三五年前的订单这种。

还是那句话,具体怎么分,得结合自身业务需求。


Q2:

如果你指的是缓存中没找到、最后还得去数据库中找的这种行为,一般称之为“缓存穿透”或“数据穿透”,而不是“数据库穿透”。

缓存中没有、不一定会造成缓存穿透。你必须是“穿透”了缓存、落到了 DB 上,才叫缓存穿透 —— 换而言之,缓存中即使没有你也不去 DB 里查、而是直接返回空结果给客户端的,那不叫缓存穿透。

Q:redis应该缓存热点数据,哪些属于热点数据?

A:经常被访问的就是热点数据,比如周杰伦发一个微博 100% 就是热点数据,你发一个就是冷门数据

Q:数据库穿透,到底指的是怎样的穿透,缓存中不可能存储所有数据,缓存中没有的数据,就会造成数据库穿透吗?

A:RAM 比 ROM 贵,必然会穿透

宣传栏