聊聊redis的資料結構的應用
阿新 • • 發佈:2018-12-11
序
本文主要研究一下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的前提。