V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wuqingdzx  ›  全部回复第 5 页 / 共 23 页
回复总数  451
1  2  3  4  5  6  7  8  9  10 ... 23  
2021-03-09 11:44:23 +08:00
回复了 BinYang 创建的主题 Java 咨询一个 redis 穿透的问题,看看大佬有什么解决方案没有
@BinYang 不太明白对你的实时性影响是什么.
布隆过滤器在这里是减少你大量的空值 key.
首先你的每个有效的 key 写入了布隆过滤器.布隆过滤器存储的是你可能有效的值,反过来说布隆过滤器没命中,那么这个 key 或者说 这个关系一定不存在,就没有必要再查 mysql 了

你的关系还是在 redis 和 mysql 里. 你的关系直接查 redis 缓存.查不到才走布隆过滤器.
布隆过滤器不存在,那 db 一定是不存在的.(按你 9:1 的比例,这足以挡掉 8 成以上的无效请求了)
布隆过滤器存在,那你就查 db 是不是真的存在,真的存在就继续 redis 缓存一下,不存在继续写入 redis 空值 key. (注意这部分请求很少,因为你大量的有效 key 已经命中 redis 直接返回了.)
2021-03-09 10:45:42 +08:00
回复了 BinYang 创建的主题 Java 咨询一个 redis 穿透的问题,看看大佬有什么解决方案没有
@BinYang 老哥思维不要局限了.

可以有个 Buffer 的布隆过滤器

假如布隆过滤器重建的粒度是每小时一次.
用一个异步任务每个整点前重建一个带有下一个时间段标识的布隆过滤器.
业务上使用布隆过滤器的时候按当前所处的小时选择对应的布隆过滤器.

例如现在时间 10 点 37 分, 你用的是 bloomfilter_0 .
到了 10 点 55 分, 11 % 2 = 1, 异步任务重建一个 bloomfilter_1.你到了 11:00 以后进来的请求就用的是 bloomfilter_1 了.
到了 11 点 55 分, 12 % 2 = 0, 异步任务重建一个 bloomfilter_0.你到了 12:00 以后进来的请求就用的是 bloomfilter_0 了. 以此类推
2021-03-09 08:27:31 +08:00
回复了 BinYang 创建的主题 Java 咨询一个 redis 穿透的问题,看看大佬有什么解决方案没有
定期重建布隆过滤器就好了,搞那么复杂干嘛。
2021-03-08 19:21:34 +08:00
回复了 360511404 创建的主题 分享创造 花了点时间写了个 macOS 下的动态壁纸,来发一下兑换码
@deepdream8 即刻地球,不能设置直播源,日本风云 8 号的直播
2021-02-26 14:17:39 +08:00
回复了 mashaofeixxx 创建的主题 推广 回贴抽奖! 2021 NUC 黑果 下单抽牛年福袋
必须必的,分母
75 已用 谢谢
2021-01-29 11:22:08 +08:00
回复了 idblife 创建的主题 Ubuntu 哪位有 ubuntu/manjaro 在 4k 分辨率下的截图?
manjaro xfce
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2645 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 04:39 · PVG 12:39 · LAX 21:39 · JFK 00:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.