redis bitmaps中bitmap的大小

发布于 2022-09-05 06:32:00 字数 580 浏览 14 评论 0

1.有一个任务, 每天产生新的uid与以前的uid(形式 "35400638_3869643")比较统计差集。目前是将文件中的uid取出来(文件大概11G左右), 然后使用set集合存入到redis中, 每天从数据库中取出uid与历史数据比较。redis占用的内存很大

目前想使用布隆过滤器进行统计, 将历史的uid从文件中取出, 通过k各hash函数存入到redis的bitmaps数据结构中。使用mmh3作为hash函数

SEEDS = [53, 59, 61, 67, 71, 73, 79]


def hash_fun(val):

    return [mmh3.hash(val, seed) for seed in SEEDS]

随便使用一个uid来计算("35400638_3869643"), k个hash之后得到7个位置[780991826, -1625101505, -1975264663, 1422187555, 1320635332, -334329440, 735628303]
这里产生的整数都很大, 如果是这样直接setbit的话会不会造成空间浪费。 比较好的计算uid bitmaps位置hash函数应该是怎么样的了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文