假设我有一把 key PREMIUM_PRICE,
设置 PREMIUM_PRICE "1000"
现在,我希望 PRODUCT_A 的价格与 PREMIUM_PRICE 相同。我不想说,
- HSET PRODUCT_A PRICE "1000"(因为如果 PREMIUM_PRICE 值发生变化,我希望 PRODUCT_A 的价格自动更新)
或
- HSET PRODUCT_A PRICE "PREMIUM_PRICE",这样我就必须得到 PRODUCT_A 的价格值,它本身是 redis 中的一个键,包含实际价格作为它的值。(因为我不想进行第二次查询来获取PREMIUM_KEY 的值(value))
我可以这样说吗
HSET PRODUCT_A PRICE [value(PREMIUM_PRICE)]
,其中 [value(PREMIUM_PRICE)] 是指向 PREMIUM_PRICE key 或其他内容的链接
这样当我执行 HGET PRODUCT_A PRICE 时,redis 会自动返回 PREMIUM_PRICE 的最新值。
这可能吗?谁告诉我。
最佳答案
一般来说是的,你可以。但是您应该为此使用 LUA 脚本,因为 Redis 没有内置功能。</p>
所以你的函数看起来像
local hsetValue = redis.call("hget", ARGV[1], ARGV[2]);
if hsetValue then
return redis.call("get", hsetValue);
end
return nil;
因此您可以使用该 LUA 函数根据其他键的值获取 HSET
字段值。
关于redis - 有没有办法将散列键的值设置为Redis中某个键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029283/