Redis 零散 Tips

匹配 key:

1. keys [pattern]

2. scan [cursor] match[pattern] count[num]

相对而言,scan 命令更为高效,异步方式不会造成主线程堵塞

 

判断 key 存在与设置过期时间

1. setnx key value:如果 key 存在则不操作, key 不存在时执行 set key value

    expire key time:设置过期时间,单位为秒

    这两个操作都是原子性的,但整体没有原子性

2. set key value [EX second] | [PX milliseconds]  [NX|XX]

    等于 setnx 与 expire 的结合,实现了整体的原子性

    NX: key 不存在时操作

    XX: key 存在时操作

 

异步队列

blpop key[key...] timeout: 阻塞直到队列有消息或超时

pub/sub: 主题订阅模式,无状态,无法保证可达

订阅者:subscribe [频道名]

发送者:publish [频道名][消息]

例:开启三个 Redis 客户端,角色均为订阅者,前两个订阅了同一个频道,第三个订阅了另一个频道

Redis 零散 Tips

然后再开启一个 Redis 客户端,角色为发布者,向 mychannel 频道发送消息

可以看到,订阅了 mychannel 频道的两个订阅者收到了消息,而另一个订阅者没有收到消息

Redis 零散 Tips