首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带ttl的phpredis函数mSet

带ttl的phpredis函数mSet
EN

Stack Overflow用户
提问于 2016-06-09 07:48:45
回答 1查看 1.4K关注 0票数 0

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

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

旧解决方案:

代码语言:javascript
复制
<?php
$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$memcached->setMulti($data, time()+864000);

新解决方案:

代码语言:javascript
复制
<?php
$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$redis->mSet($data);

这些脚本的操作几乎相同。

如您所见,当我使用多个(mSet函数)时,redis不能设置过期日期。

有解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-09 07:58:27

MSET不支持SET提供的EXPX选项。根据您的需要,您有两个选项:

  • 如果需要使用原子化的方法,可以使用交易记录Lua脚本。事务的示例(来自redis-cli)如下所示:多点

好的

SET key1 value1 EX 10 排队

SET key2 value2 EX 10 排队

执委会

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

  • 如果不需要原子性,则只需使用流水线和多个SET命令即可。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37719861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档