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