序
本文主要研究一下redis的数据结构的应用redis
string
- 最经常使用的就是incr操做,好比能够用来维护用户在某个抽奖活动的剩余抽奖次数
- setnx方法能够用来实现分布式锁
hashmap
- 能够用来存储session,做为分布式session的一个实现方案
- 能够用来存储用户购物车,value值存储的key为物品,value为其数量
set
- set能够用来存储每一个标签对应的文章id
- 也能够用来存储每一个文章的已投票用户id,经过add返回值能够判断该值以前是否已经存在
zset
- zset能够用来存储文章的得票数,使用得票数做为score,使用zset排序得出投票最高的前N篇文章
- 或者用来存储最近登陆的用户id,使用时间做为score,使用zset排序得出最近登陆的前N个用户id
- 也能够存储用户最近浏览的物品,使用时间做为score,使用zset排序得出用户最近浏览的前N个物品
- 也能够存储物品最近浏览的用户,使用时间做为score,使用zset排序得出最近浏览该物品的前N个用户
list
- 能够做为简单的消息队列,经过list的lpush以及brpop做为消息队列的入队及消费的操做
hyperloglog
geo(底层使用zset
)
- 使用geo来存储poi信息,好比存储门店的经纬度,以后能够根据半径查询附件的门店信息
bitmaps(底层是string结构
)
小结
redis之因此比memcache更为流行主要是因为其强大的数据结构及其提供的操做,丰富的数据结构在特定的场景给咱们提供了诸多便利,好好合理利用其数据结构特性,是用好redis的前提。segmentfault
doc