Redis 中的高级数据类型

5个基础数据类型

 

高级功能

① HyperLogLog (参考

供不精确的去重计数功能,比较适合用来做大规模数据的去重统计,例如统计 UV

> PFADD visitors alice bob carol
(integer) 1
> PFCOUNT visitors
(integer) 3

解释:

如果 HyperLogLog 估计的近似基数在 PFADD 命令执行之后出现了变化, 那么命令返回 1 , 否则返回 0 。如果命令执行时给定的键不存在, 那么程序将先创建一个空的 HyperLogLog 结构, 然后再执行命令。

PFCOUNT 命令会给出 HyperLogLog 包含的近似基数。在计算出基数后,PFCOUNT 会将值存储在 HyperLogLog 中进行缓存,直到下次 PFADD 执行成功前,就都不需要再次进行基数的计算。

PFMERGE 将多个 HyperLogLog 合并为一个 HyperLogLog , 合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的并集基数。

 

② pub/sub

使用主题订阅者模式,可以实现 1:N 的消息队列(即生产一次消费多次)。但是,在消费者下线的情况下,生产的消息会丢失,得使用专业的消息队列如RocketMQ等

# 订阅频道
> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

# 发布消息到频道
> PUBLISH redisChat "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"

# 查看频道列表
> PUBSUB CHANNELS
1) "redisChat"

# 取消订阅
> UNSUBSCRIBE redisChat

# 订阅多个频道,格式为 PSUBSCRIBE pattern [pattern ...]
> PSUBSCRIBE redis*
1) "psubscribe"
2) "redisChat"
3) (integer) 1

  

233

posted on 2019-11-18 16:48  Lemo_wd  阅读(1261)  评论(0编辑  收藏  举报

导航