分布式电商也讲了这三种
1 穿透
就是查根本不存在的数据 一直访问数据库 一直查不到 因为查不到数据 不能放入缓存 所以大量请求都直接到了数据库
redis命中率低
解决 :查不到的数据也放入缓存 null表示
2 击穿
击穿就是一个热点数据的缓存失效 大量请求到了数据库
3 雪崩
雪崩就是大面积的缓存集中失效
解决: 过期时间随机 让过期时间分散开
分布式锁
基于redis的分布式锁
分布式电商里面有讲 讲的还详细一些
利用 setnx 因为他这个是自己上锁setnx自己解锁del key嘛 那如果他一直不释放锁 就会死锁 所以在用nx的同时用 ex 设置过期时间
为什么要Lua脚本
如果uuid比较完了 还没删 锁就过期了自动释放了 b拿到锁了 也上锁了 这个时候a去删 就会删了b的锁
权限列表
ACL命令 可以创建用户啊 添加权限啊 实现更强大的权限控制
单线程 多路IO
有好几种方式 select poll epoll
I/O复用模型
1.select/poll
老李去火车站买票,委托黄牛,然后每隔6小时电话黄牛询问,黄牛三天内买到票,然后老李去火车站交钱领票。
耗费:往返车站2次,路上2小时,黄牛手续费100元,打电话17次
2.epoll
老李去火车站买票,委托黄牛,黄牛买到后即通知老李去领,然后老李去火车站交钱领票。
耗费:往返车站2次,路上2小时,黄牛手续费100元,无需打电话