作者回复: 谢谢~
作者回复: 以单独服务部署比较好,我之前团队曾经改了一下redis源码来实现这个功能,利用redis的存储机制
作者回复: 可能存在扫描你的用户的爬虫请求
作者回复: 一般缓存会有cache miss和cache hit的统计信息,也可以自己打印日志统计
作者回复: 1. 一般的锁是进程中的锁,可以同步一个进程中的多个线程;分布式锁可以同步多个进程
2. 缓存适合放经常访问的热数据,不能放全量数据,而且也放不下
作者回复: bloom filter需要自研,可以基于redis持久化存储到硬盘上
连接池应该解决不了问题,因为链接不是无限的;限流是有损的
作者回复: 可以返回失败 不从数据库读取,或者重试
作者回复: 是的
作者回复: 穿透指的是缓存中没有数据,需要到数据库中去取;雪崩指的是一个缓存节点的故障导致全局故障,两者是不同的
之前提的一致性hash中实现虚拟节点就是一种避免雪崩的方法
作者回复: 是的
作者回复: 是的,缓存穿透肯定会有,只是要尽量减少
作者回复: 一般不建议设置缓存不过期,原因有两方面,一方面是数据可能会有不一致,另一方面缓存的容量也会有限制
作者回复: 比如有三个算法算出三个值,那么必须三个值都一致才算是在集合中,只有两个值一致不算
作者回复: 拿到空值
作者回复: 是的,是集合中的元素不一定在集合中。
我的这句应该是一个假设,表示,如果布隆过滤器可以把不是集合中的元素判定为在集合中,也就是false negative,那么就不能减少缓存穿透了。正因为布隆过滤器是false positive,所以才可以减少缓存的穿透
作者回复: 是的,是可以解决缓存穿透的问题的
作者回复: 不是的,狗桩效应是文中特指的那种情况