高級功能
① 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