gpt4 book ai didi

redis - key 条件更新的惯用方法

转载 作者:IT王子 更新时间:2023-10-29 06:08:53 26 4
gpt4 key购买 nike

我想使用 Redis 缓存用户发送给我的最新数据。但是,我不能只使用 SET,因为用户可能会乱序发送数据,我需要根据另一个键的值来调整 SET,例如:

latest_timestamp = GET "latest_timestamp:<new_data.user_id>"
if latest_timestamp < new_data.timestamp {
SET "latest_timestamp:<new_data.user_id>" new_data.timestamp
SET "latest_data:<new_data.user_id>" new_data.to_string()
}

处理这种情况的惯用方法是什么?

最佳答案

服务器端 Lua 脚本(参见 EVAL)是 IMO 最惯用的方法。

确保您的代码将两个键的全名(即进行所有替换)以及新时间戳和新数据作为参数传递。该脚本应如下所示:

local lts = tonumber(redis.call('GET', KEYS[1]))
local nts = tonumber(ARGV[1])
if lts < nts then
redis.call('SET', KEYS[1], nts)
redis.call('SET, KEYS[2], ARGV[2])
end

关于redis - key 条件更新的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48767272/

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