数据库

Redis 字符串命令 set 的更多使用

By karp 954 Views 4 MIN READ 0 Comments

今天看了同时的代码, 发现自己对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

本文由 karp 原创

采用 CC BY-NC-SA 4.0 协议进行许可

转载请注明出处:https://www.ikarp.top/index.php/archives/546.html

标签: redis

0 评论