缓存穿透
# 缓存穿透
是值查询一个缓存和数据库中都没有的数据,由于大部分的缓存策略是被动加载的,并且处于容错考虑,如果从存储层查不到数据则不写入缓存。
这个不存在的数据每次都会到存储层去查询,失去缓存的意义,用户不断发起请求,量大甚至可以导致缓存雪崩。
# 接口校验
不要相信前端传来的东西,所以数据一定要在后端进行校验。
我们可以在接口层添加校验,不合法的直接返回即可,没必要做后续的操作。
# 空对象缓存或者缺省值
一般情况下OK。
但是黑客会对你的系统进行攻击,拿一个不存在的id 去查询数据,会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。
- id相同: 第一次打到DB,空对象缓存后第二次就返回null了,避免DB被攻击,不用再到数据库中去走一圈了
- id不同: 由于存在空对象缓存和缓存回写,redis中的无关紧要的key也会越写越多
# 布隆过滤器
- 01
- 以 root 身份启动 transmission-daemon12-13
- 02
- Debian系统安装qbittorrent-nox12-09
- 03
- LXC Debain12安装zerotier并实现局域网自动nat转发07-29