如何在redis中更新依赖的键值?

3xiyfsfu  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(505)

我想知道,如果一个或多个键的值发生变化,是否有一个基于其他键的值更新这些键的推荐机制。
这有点像属性,或者getter和setter,但是对于redis键。
为什么我需要这个?
假设我有多个(在我的例子中是10-100个)客户都需要知道一个值 dep1 它是 indep1 , ... , indepN . 一种方法是让所有的客户机监视 indep1 , ... , indepN ,并计算 dep1 . 在我看来,这似乎是重复工作,并增加网络流量。但是,如果 dep1 是“自动”更新的,它们都只需要监听 dep1 .
当前思维
我能想到的唯一解决方案是有一个监控客户机来完成这项工作。不过,我想知道有没有更好的办法。也许是和卢亚。顺便说一句,我是一个十足的redis和lua noob。

pw9qyyiw

pw9qyyiw1#

使用lua似乎是个不错的主意。您可以使用lua脚本来更新 indep1 ... indepN 脚本可以自动计算 dep1 并在数据库中的单个事务中设置其值(lua脚本在处理任何其他命令之前运行到完成)。阅读 dep1 然后保证是正确的,因为它是原子式更新的 indepX . 然后,您只需要观察上的键空间更改 dep1 在你的客户身上。
注:这可能不是最有效的方法,因为计算 dep1 可能是昂贵的和复制的任何时间之一 indepX 已更新。

相关问题