按上次更新查找Redis数据

按上次更新查找Redis数据,redis,Redis,我是Redis的新手,希望使用以下方案: 关键字:员工ID* 值:*员工数据* 我想在钥匙的末尾加上一个时间戳,但我不确定这是否有用。基本上,我希望能够得到一份更新后最陈旧的ie员工名单。在Redis中实现这一点的最佳方法是什么?您是否尝试过按过期时间进行过滤?您可以为所有密钥设置相同的过期时间,并在每次更新密钥时更新过期时间。然后,使用LUA脚本,您可以迭代键并按过期时间进行过滤。过期时间较短的是未更新的 这需要一些假设,这取决于系统的工作方式。此外,对于员工数量,该方法为O(N)。因此,如果

我是Redis的新手,希望使用以下方案:

关键字:员工ID*
值:*员工数据*


我想在钥匙的末尾加上一个时间戳,但我不确定这是否有用。基本上,我希望能够得到一份更新后最陈旧的ie员工名单。在Redis中实现这一点的最佳方法是什么?

您是否尝试过按过期时间进行过滤?您可以为所有密钥设置相同的过期时间,并在每次更新密钥时更新过期时间。然后,使用LUA脚本,您可以迭代键并按过期时间进行过滤。过期时间较短的是未更新的


这需要一些假设,这取决于系统的工作方式。此外,对于员工数量,该方法为O(N)。因此,如果一方面你可以节省空间,它将不能很好地与条目数量和扫描频率进行缩放。

你是否尝试过按过期时间进行过滤?您可以为所有密钥设置相同的过期时间,并在每次更新密钥时更新过期时间。然后,使用LUA脚本,您可以迭代键并按过期时间进行过滤。过期时间较短的是未更新的


这需要一些假设,这取决于系统的工作方式。此外,对于员工数量,该方法为O(N)。因此,如果一方面你可以节省空间,那么它将不能很好地与条目数量和扫描频率进行缩放。

保留另一个包含员工数据(密钥名称)和更新时间戳的密钥-最好的候选是排序集。为了维护该密钥的数据完整性,每当您更新一个员工密钥时,您都必须使用相关更改对其进行更新


使用该数据结构,您可以使用
ZRANGE
命令轻松获取最近更新的员工的密钥名称。

保留另一个包含员工数据(密钥名称)和更新时间戳的密钥-最好的候选密钥是排序集。为了维护该密钥的数据完整性,每当您更新一个员工密钥时,您都必须使用相关更改对其进行更新


有了这种数据结构,您可以使用
ZRANGE
命令轻松获取最近更新的员工的密钥名。

这是一种非常有创意的方法,但由于它对数据库进行了全面扫描,性能可能会降低。@ItamarHaber,我以前没有遇到过“这是一个非常有创意的方法,但是……”这句话。我喜欢……:)@ItamarHaber那么我们预计会有多少员工?不确定,即使你有一家大公司,你的雇员人数也不会超过几千人。当然,如果您必须多次运行此查询,这不是一个好主意,但对于定期检查,它绝对有效。@xbirkettx员工数量确实是一个重要的指标,但更重要的是数据库中键的总数——这个数字决定了该方法的性能。@itamarHaber我同意这不是最有效的方法,但我想值得一提的是,对于一些简单的情况:)这是一种非常有创意的方法,但它的性能可能较低,因为它会对数据库进行全面扫描数据库。@ItamarHaber,我以前没有遇到过“这是一个非常有创意的方法,但是……”这样的说法。我喜欢……:)@ItamarHaber那么我们预计会有多少员工?不确定,即使你有一家大公司,你的雇员人数也不会超过几千人。当然,如果您必须多次运行此查询,这不是一个好主意,但对于定期检查,它绝对有效。@xbirkettx员工数量确实是一个重要的指标,但更重要的是数据库中键的总数量——这个数字决定了该方法的性能。@itamarHaber我同意这不是最有效的方法,但我想对于一些简单的情况来说值得一提:)