(Redis篇-3)- Redis常用数据结构与应用场景

2021-09-10  本文已影响0人  Burlong

最常用的五种数据结构为:String、Hash、Set、List、Zset(Sorted Set)

另外还有几种特殊的数据结构:Bitmap、HyperLogLog、Bloom、GeoHash

String

最常用,用来做普通的get、set的KV操作。

Hash

类似HashMap的一种数据结构。

用处:

List

列表 - 双向链表实现。

用处:

Set

无序集合。

用处

// 你的好友列表abcd
sadd you a b c d
// 我的好友列表cdef
sadd me c d e f
// 基于"你"来求和"我"之间的差集
sdiff you me
结果:a b
即可实现把你的好友a、b推荐给我

Sorted Set

有序集合。

用处:

// 订单限时支付(score为当前时间+30min)
zadd delay_q now+30min task:orderId
// 消费端定时轮询队列delay_q(通过score排名:0开始排名到当前时间)
zrangebyscore delay_q 0 now

Bitmap

位图。底层实际上也是String。

用处:

// 标志用户001参加过活动0001
setbit 0001 001 1
// 判断是否参加过活动
getbit 0001 001
// 日期0605作为key,将一个个用户id映射的bit置1
setbit login:0605 001 1
setbit login:0605 002 1
setbit login:0605 003 1
...
// 直接统计该key为1的数量
bitcount login:0605

在统计日活量的基础上,对不同日期的bitmap做一个与运算。比如一个用户连续登录两天,那他id所映射到的那个bit,与运算的结果肯定为1。

上一篇 下一篇

猜你喜欢

热点阅读