1. 程式人生 > >聊聊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的前提。

doc