gpt4 book ai didi

database - 我如何将其存储在 Redis 中?

转载 作者:IT王子 更新时间:2023-10-29 06:03:47 25 4
gpt4 key购买 nike

我有很多产品 (product_id)。用户 (user_id) 查看产品。

我想查询哪些用户在过去 24 小时内浏览过任何产品。 (换句话说,我想保留一个附加到该 product_id 的 user_ids 列表......当用户的 24 小时结束时,该用户从该列表中弹出并且记录消失)

我如何将其存储在 Redis 中?有人可以给我一个高级模式吗,因为我是 Redis 的新手。

最佳答案

对于类似的事情,我使用一个排序集,其中值是用户 ID,分数是当前时间。更新集合时,使用 ZREMRANGEBYSCORE 删除旧项目并更新当前用户的时间分数。

更新代码:

每当添加新项目时:

ZREMRANGEBYSCORE recentitems 0 [DateTime.Now.AddMinutes(-10).Ticks]
ZADD recentitems [DateTime.Now.Ticks] [item.id]

获取最近 10 分钟内添加的项目的 ID:

ZREVRANGEBYSCORE recentitems [DateTime.Now.Ticks] [DateTime.Now.AddMinutes(-10).Ticks]

注意你也可以使用

ZREVRANGE recentitems 0 -1 

如果您不介意如果最近没有添加任何内容,则该集合可能包含较旧的项目。

这会为您提供项目 ID 列表。然后,您可以根据需要使用 GET/MGET/HGET/HMGET 来检索要显示的实际项目。

关于database - 我如何将其存储在 Redis 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com