想象一下在 Redis 数据库中有一堆散列,每个散列代表一个用户对象。例如,您将如何获得注册日期最低的用户?ts_registered
最低的用户。我在 redis.io 上的命令页面上搜索了一下,但似乎没有在那里找到它的命令。
我对 Redis 没有太多经验,我基本上只是在检查它是如何工作的。
想象一下在 Redis 数据库中有一堆散列,每个散列代表一个用户对象。例如,您将如何获得注册日期最低的用户?ts_registered
最低的用户。我在 redis.io 上的命令页面上搜索了一下,但似乎没有在那里找到它的命令。
我对 Redis 没有太多经验,我基本上只是在检查它是如何工作的。
Redis 没有开箱即用的功能,可以在散列中搜索/索引,但它为您提供了完成任务所需的所有工具。例如,可以通过在数据库中保留一个名为 last_user_registered 或类似名称的密钥,并在每次用户注册到该用户的 ID 时设置它来解决您的挑战。当您想获取在任何给定时刻注册的最后一个用户时 - 只需获取它,明白了吗?
但是您(和 Redis!)可以做得更好:例如,您可以使用 Redis 列表和 LPUSH/RPOP 成员来记录最后加入的用户的分数。或者,您可以使用一个排序集,其中每个成员都是一个用户 ID,分数是时间戳……啊,可能性是无穷无尽的,你只受你的想象力(以及时间、资源等)的限制。 ;)
我认为这正是 Redis 的“爱好者”喜欢将其称为数据库构建工具而不仅仅是一个数据库的原因——你实际上可以让它做你想做的任何事情,如果你想要的东西已经不在 Redis 中,那么总有Lua您可以使用它来扩展甚至开发自己的 fork 并向github提出拉取请求。