redis bitmaps中bitmap的大小

飞的猪头
  • 83

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函数应该是怎么样的了?

回复
阅读 4.4k
你知道吗?

宣传栏