我目前正在使用memcached,但我正在尝试将此机制移至redis。
我的目标是每1000次迭代保存整个数组(key =>值)。
旧解决方案:
<?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(mSet函数)时,redis无法设置过期日期。
任何解决方案?
答案 0 :(得分:1)
MSET
不支持EX
提供的PX
和SET
选项。根据您的需要,您有两种选择:
如果您需要将其设为原子,请使用transactions或Lua scripting。事务(来自redis-cli
)的示例如下所示:
&GT; MULTI
行
&GT; SET key1 value1 EX 10
QUEUED
&GT; SET key2 value2 EX 10
QUEUED
&GT; EXEC
我不熟悉phpredis,但它可能有一个抽象来处理这个问题。
SET
命令。