为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Redis 位图随机数字 ID 作为偏移量

使用 Redis 位图随机数字 ID 作为偏移量

PHP
LEATH 2022-07-22 15:54:09
我想在 Redis 中使用位图来存储位以进行分析。但是对于位图,需要指定一个offset位置,使用 cli 它看起来像:> SETBIT mykey <offset> 1通常,偏移量是来自数据库的 ID 值,因此它是唯一且连续的。但在我的情况下,我不能这样做,因为我要保存的位不是登录用户,而是网页上的查看者,所以他们没有 ID。所以这意味着我需要生成一个随机数值并将其用作偏移量。我将使用 PHP。到目前为止,我已经尝试过:$id = hexdec( substr( md5($uniqid()), 0, 10 ) );这会产生整数,例如:584657569161. 如果不需要,我不想使用这么大的整数作为偏移量。生成一个唯一数值的最有效方法是什么,该数值从一个小数字开始,然后会根据已经出现的观众数量增加?
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

这是一种可能对您有用的方法:

  1. 在 Redis 中保留一个计数器,并INCR为每个新的唯一查看器 ID

  2. 使用 Redis 哈希将您从计数器获得的结果映射到查看器 ID - 每个字段都是一个整数,值是查看器 ID。使用它来将整数 ID 解析为查看器 ID。

  3. 使用不同的 Hash 重复步骤 2,其中字段是查看器 ID,值是整数,并使用它将查看器转换为整数 ID。


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信