redis bitmaps中bitmap的大小
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论