我目前正在使用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提供的PXSET选项。根据需要,您有两个选择:
如果你需要它是原子的,使用transactionsLua 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/

10-14 01:34