我想在 Redis 中使用位图来存储位以进行分析。但是对于位图,有必要指定一个位置,使用cli它看起来像这样:offset> SETBIT mykey <offset> 1通常,偏移量是数据库中的 ID 值,因此它是唯一且按顺序排列的。但在我的情况下,我不能这样做,因为我想保存的位不是登录用户,而是网页上的查看者,所以他们没有ID。这意味着我需要生成一个随机数值并将其用作偏移量。我将使用PHP。到目前为止,我已经尝试过这个:$id = hexdec( substr( md5($uniqid()), 0, 10 ) );这将产生整数,例如:。如果我不需要,我不想使用这么大的整数作为偏移量。生成唯一数值的最有效方法是什么,该值将从较小的数字开始,但随后将根据已经存在的查看者数量增加?584657569161
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
以下是可能适合您的方法:
在 Redis 中保留一个计数器,并为每个新的唯一查看者 ID 保留一个计数器
INCR
使用 Redis 哈希将计数器获得的结果映射到查看器 ID - 每个字段都是一个整数,值是查看器 ID。使用此选项可将整数 ID 解析为查看器 ID。
使用不同的 Hash 重复步骤 2,其中字段是查看器 ID,值是整数,并使用它来将查看器转换为整数 ID。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消