我目前正在使用memcached,但我正在尝试将此机制移动到redis。
我的目标是每1000次迭代保存整个数组(key=>value)。
旧解决方案:
<?php
$data = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$memcached->setMulti($data, time()+864000);
新解决方案:
<?php
$data = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$redis->mSet($data);
这些脚本的操作几乎相同。
如您所见,当我使用multi(m set函数)时,redis无法设置到期日期。
有什么解决办法吗?
最佳答案
MSET
不支持EX
提供的PX
和SET
选项。根据需要,您有两个选择:
如果你需要它是原子的,使用transactions或Lua scripting。有事务(来自redis-cli
)的示例如下:
>多个
好啊
>设置Key1 Value1 Ex 10
排队的
>设置键2值2 Ex 10
排队的
Excel
我不熟悉phpredis,但它可能有一个抽象来处理这个问题。
如果不需要原子性,只需将pipelining与多个SET
命令一起使用即可。
关于php - phpredis函数mSet与ttl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37719861/