有没有办法将哈希键的值设置为Redis中键的值

时间:2014-04-12 10:40:32

标签: redis hashmap

考虑我有一个密钥PREMIUM_PRICE,

SET PREMIUM_PRICE“1000”

现在,我希望PRODUCT_A的价格与PREMIUM_PRICE相同。我不想说,

  • HSET PRODUCT_A价格“1000”(因为如果PREMIUM_PRICE值发生变化,我希望PRODUCT_A的价格自动更新)

  • HSET PRODUCT_A价格“PREMIUM_PRICE”,因此我必须获得PRODUCT_A的价格值,其本身是redis的关键,其中包含实际价格作为其价值。(因为我不想再进行第二次查询以获得PREMIUM_KEY的价值)

我能说些什么吗,

HSET PRODUCT_A价格 [value(PREMIUM_PRICE)]

,其中 [value(PREMIUM_PRICE)] 是PREMIUM_PRICE键的链接或其他

这样当我执行HGET PRODUCT_A PRICE时,redis会自动返回PREMIUM_PRICE的最新值。

这可能吗?有人告诉我。

1 个答案:

答案 0 :(得分:0)

一般来说,,你可以。但是你应该使用LUA脚本,因为redis没有内置的功能。

所以你的功能看起来像是

local hsetValue = redis.call("hget", ARGV[1], ARGV[2]);
if hsetValue then
   return redis.call("get", hsetValue);
end

return nil;

因此,您可以使用该LUA函数根据其他键的值获取HSET字段值。