Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Redis'中管理按需缓存的习惯用法;设置_Redis - Fatal编程技术网

在Redis'中管理按需缓存的习惯用法;设置

在Redis'中管理按需缓存的习惯用法;设置,redis,Redis,Redis2.0。(2.2的解决方案也很有趣,但遗憾的是,我还不能升级。) 我需要在Redis set中存储一些数据: SADD mycache apple SADD mycache orange 此缓存数据将与SINTER命令一起使用: SADD foo apple SADD foo pear ... later ... SINTER foo mycache 我希望能够创建mycache按需设置。也就是说,在发出SINTER时,检查集合是否存在,如果缺少,则创建集合 但我不知道如何才能有效

Redis2.0。(2.2的解决方案也很有趣,但遗憾的是,我还不能升级。)

我需要在Redis set中存储一些数据:

SADD mycache apple
SADD mycache orange
此缓存数据将与
SINTER
命令一起使用:

SADD foo apple
SADD foo pear
... later ...
SINTER foo mycache
我希望能够创建
mycache
按需设置。也就是说,在发出
SINTER
时,检查集合是否存在,如果缺少,则创建集合

但我不知道如何才能有效地做到这一点。我看到的唯一解决办法如下:

MULTI
EXISTS mycache
SINTER foo mycache
EXEC
…并在客户端上检查第一个命令是否返回true。这是最好的解决方案吗


或者我反对Redis的“做事方式”?

好吧,我最终使用了问题中包含的解决方案。它起作用了

如果你知道比这更好的,请把它贴在这里