考虑到我有一个关键的溢价,
设定溢价“1000”
现在,我希望产品的价格和溢价一样。我不想说,
hset product_a price“1000”(因为如果溢价价格值发生变化,我希望product_a的价格自动更新)
或
hset product_a price“premium_price”,这样我就必须得到product_a的价格值,它本身是redis中的一个键,包含实际价格作为它的值。(因为我不想再进行第二次查询来得到premium_key的值)
我能说点什么吗?
HSET产品价格[价值(溢价)]
,其中[value(premium_price)]是指向premium_price key或其他内容的链接
所以当我做一个hget产品的价格时,redis会自动返回premium价格的最新值。
这可能吗?有人告诉我。
最佳答案
一般来说是的,你可以。但是你应该使用lua脚本,因为redis没有内置的功能。
所以你的功能看起来
local hsetValue = redis.call("hget", ARGV[1], ARGV[2]);
if hsetValue then
return redis.call("get", hsetValue);
end
return nil;
所以可以使用lua函数根据其他键的值获取
HSET
字段值。