聊聊redis的数据结构的应用

本文主要研究一下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

  • 用来粗略统计网站的每日UV

geo(底层使用zset)

  • 使用geo来存储poi信息,好比存储门店的经纬度,以后能够根据半径查询附件的门店信息

bitmaps(底层是string结构)

  • 用来统计用户每日是否登录过

小结

redis之因此比memcache更为流行主要是因为其强大的数据结构及其提供的操做,丰富的数据结构在特定的场景给咱们提供了诸多便利,好好合理利用其数据结构特性,是用好redis的前提。segmentfault

doc

相关文章
相关标签/搜索