string(字符串)
- 最常用的就是incr操作侨舆,比如可以用來維護(hù)用戶在某個(gè)抽獎(jiǎng)活動的剩余抽獎(jiǎng)次數(shù)
- setnx方法可以用來實(shí)現(xiàn)分布式鎖
hashmap(哈希)
- 可以用來存儲session短绸,作為分布式session的一個(gè)實(shí)現(xiàn)方案
- 可以用來存儲用戶購物車逮走,value值存儲的key為物品抱慌,value為其數(shù)量
set(無序集合)
- set可以用來存儲每個(gè)標(biāo)簽對應(yīng)的文章id
- 也可以用來存儲每個(gè)文章的已投票用戶id梅尤,通過add返回值可以判斷該值之前是否已經(jīng)存在
zset(有序集合)
- zset可以用來存儲文章的得票數(shù)音婶,使用得票數(shù)作為score嚼贡,使用zset排序得出投票最高的前N篇文章
- 或者用來存儲最近登錄的用戶id,使用時(shí)間作為score娘扩,使用zset排序得出最近登錄的前N個(gè)用戶id
- 也可以存儲用戶最近瀏覽的物品着茸,使用時(shí)間作為score,使用zset排序得出用戶最近瀏覽的前N個(gè)物品
- 也可以存儲物品最近瀏覽的用戶琐旁,使用時(shí)間作為score涮阔,使用zset排序得出最近瀏覽該物品的前N個(gè)用戶
list(列表)
- 可以作為簡單的消息隊(duì)列,通過list的lpush以及brpop作為消息隊(duì)列的入隊(duì)及消費(fèi)的操作
hyperloglog
- 用來粗略統(tǒng)計(jì)網(wǎng)站的每日UV
geo(底層使用zset)
- 使用geo來存儲poi信息灰殴,比如存儲門店的經(jīng)緯度敬特,之后可以根據(jù)半徑查詢附件的門店信息
bitmaps(底層是string結(jié)構(gòu))
- 用來統(tǒng)計(jì)用戶每日是否登陸過
小結(jié)
- redis之所以比memcache更為流行主要是由于其強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)及其提供的操作,豐富的數(shù)據(jù)結(jié)構(gòu)在特定的場景給我們提供了諸多便利牺陶,好好合理利用其數(shù)據(jù)結(jié)構(gòu)特性伟阔,是用好redis的前提。