gpt4 book ai didi

phpredis 函数 mSet 与 ttl

转载 作者:可可西里 更新时间:2023-11-01 11:20:24 26 4
gpt4 key购买 nike

我目前正在使用 memcached,但我正在尝试将此机制转移到 redis。

我的目标是每 1000 次迭代保存整个数组(键 => 值)。

旧的解决方案:

<?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 无法设置过期日期。

有什么解决办法吗?

最佳答案

MSET 不支持 SET 可用的 EXPX 选项。根据您的需要,您有 2 个选择:

  • 如果您需要它是原子的,请使用 transactionsLua scripting .交易示例(来自 redis-cli)如下所示:

    > 多个

    好的

    > 设置键 1 值 1 EX 10

    排队

    > 设置 key2 value2 EX 10

    排队

    > 执行

我不熟悉 phpredis,但它可能有一个抽象可以为您处理这个问题。

  • 如果你不需要原子性,你可以使用pipelining使用多个 SET 命令。

关于phpredis 函数 mSet 与 ttl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com