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