Karp 的技术博客

今天看了同时的代码, 发现自己对redis的了解就是渣渣呀.

$redis->set($key, $data, ['nx', 'ex' => $frequency]]

字符串的应用, 一般我们就是用作缓存, 或者自增键加锁使用. 其他业务很少用.

看到上面代码第一眼时我就懵逼了, 三参数可以是数组.
先解释下上面代码意思 : $key 是否存在, 存在则设 $frequencyttl有效期.

说下使用场景: 我们弄了个预警服务, 怕重复报警, 限制频率 $frequency秒内仅报警一次.

nx, ex 的介绍 细节如下面文档:

SET

SET key value [EX seconds] [PX milliseconds] [NX|XX]

将字符串值 value 关联到 key

如果 key 已经持有其他值, SET 就覆写旧值,无视类型。

对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。

可选参数
Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改:

EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value
NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value
XX :只在键已经存在时,才对键进行设置操作。

文档地址 : http://doc.redisfans.com/string/set.html

redis

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2022年06月19日 12:11
5

目录

来自 《Redis 字符串命令 set 的更多使用》
774 文章数
0 评论量
9 分类数
779 页面数
已在风雨中度过 9年277天3小时47分