Redis 16 個常見使用場景, 非常實用!

2022-09-09 23:51:41 字數 2922 閱讀 9028

string型別

例如:熱點資料快取(例如報表、明星出軌),物件快取、全頁快取、可以提公升熱點資料的訪問資料。

string 型別,因為 redis 是分布式的獨立服務,可以在多個應用之間共享

例如:分布式session

org.springframework.session

spring-session-data-redis

string 型別setnx方法,只有不存在時才能新增成功,返回true

public

static

boolean

getlock(string key)

return flag == 1;

}public

static

void

releaselock(string key)

int型別,incrby,利用原子性

incrby userid 1000

分庫分表的場景,一次性拿一段

int型別,incr方法

int型別,incr方法

以訪問者的ip和其他資訊作為key,訪問一次增加一次計數,超過次數則返回false

string型別的bitcount(1.6.6的bitmap資料結構介紹)

字元是以8位二進位制儲存的

set

k1 a

setbit k1 61

setbit k1 70

get k1

/*6 7 代表的a的二進位制位的修改

a 對應的ascii碼是97,轉換為二進位制資料是01100001

b 對應的ascii碼是98,轉換為二進位制資料是01100010

因為bit非常節省空間(1 mb=8388608 bit),可以用來做大資料量的統計。

*/

setbit onlineusers 01

setbit onlineusers

11setbit onlineusers

20

支援按位與、按位或等等操作

bitopanddestkeykey[

key...

] ,對乙個或多個 key

求邏輯並,並將結果儲存到 destkey 。

bitopordestkeykey

[key...

] ,對乙個或多個 key

求邏輯或,並將結果儲存到 destkey 。

bitopxordestkeykey

[key...

] ,對乙個或多個 key

求邏輯異或,並將結果儲存到 destkey 。

bitopnotdestkeykey ,對給定

key 求邏輯非,並將結果儲存到 destkey 。

bitop "and" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ...  "day_7_online_users"
string 或hash。所有string可以做的hash都可以做

list,雙向鍊錶,直接作為timeline就好了。插入有序

list提供了兩個阻塞的彈出操作:blpop/brpop,可以設定超時時間

上面的操作。其實就是j**a的阻塞佇列。學習的東西越多。學習成本越低

自帶乙個隨機獲得值

假如上面的微博id是t1001,使用者id是u3001

用 like:t1001 來維護 t1001 這條微博的所有點讚使用者

是不是比資料庫簡單多了。

老規矩,用 tags:i5001 來維護商品所有的標籤。

//

獲取差集

sdiff set1 set2

//獲取交集(intersection )

sinter set1 set2

//獲取並集

假如:iphone11 上市了

sadd brand:ios iphone11

sad screensize:

6.0-

6.24

iphone11

sad screentype:lcd iphone

11賽選商品,蘋果的、ios的、螢幕在6.0-6.24之間的,螢幕材質是lcd螢幕

-6.24 screentype:lcd

follow 關注 fans 粉絲

相互關注:

我關注的人也關注了他(取交集):

可能認識的人:

id 為6001 的新聞點選數加1:

zincrby hotnews:20190926

1 n6001

獲取今天點選最多的15條:

Redis常見使用場景

1 使用string實現計數 特點 string的value一般是string,也可以是數字 內部實現 當涉及數字運算時,自動把string轉換為integer進行運算 應用場景 對客戶端傳送驗證碼次數進行限制 string借助incr incrby decr decrby可以實現原子計數 2 使用...

Redis 的 5 個常見使用場景

最常用的一種使用redis的情景是會話快取 session cache 用redis快取會話比其他儲存 如memcached 的優勢在於 redis提供持久化。當維護乙個不是嚴格要求一致性的快取時,如果使用者的購物車資訊全部丟失,大部分人都會不高興的,現在,他們還會這樣嗎?幸運的是,隨著 redis...

Redis 的 5 個常見使用場景

1,會話快取 session cache redis 具有快取資料持久化的能力,當快取因出現問題而重啟後,之前的快取資料還在那兒,這個就比較實用,避免了因為session突然消失帶來的使用者體驗問題。2,頁面快取 如果你使用的是伺服器端內容渲染,你又不想為每個請求重新渲染每個頁面,就可以使用 red...