日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis常用数据类型的场景,你真的用对了么?

發(fā)布時(shí)間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis常用数据类型的场景,你真的用对了么? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)注微信公眾號(hào)“蝦米聊吧”,每天更新一篇技術(shù)文章,文章內(nèi)容涵蓋架構(gòu)師成長必經(jīng)之路應(yīng)掌握的技術(shù),一起學(xué)習(xí),一起交流。

?

redis常用數(shù)據(jù)類型的場(chǎng)景,你真的用對(duì)了么?

?

redis常用數(shù)據(jù)類型包含string、hashmap、list、set、sorted set。

?

string類型

1) 單值緩存

set key value

這個(gè)沒啥好說的

2) 對(duì)象緩存

set? user:1? value(json格式)

3)分布式鎖

setnx product:10001? true //返回1代表獲取鎖成功

setnx product:10001? true //返回0代表獲取鎖失敗

del product:100001?????? //執(zhí)行業(yè)務(wù)完畢刪除key釋放鎖

set product:100001?????? //設(shè)置過期時(shí)間(防止程序意外終止導(dǎo)致死鎖)

4)redis 分布式session

5)計(jì)數(shù)器

文章瀏覽量計(jì)數(shù)(每瀏覽一次文章瀏覽量+1)

incr article:readcount:{文章id}

6)分布式全局id序列號(hào)

可以通過redis提前批量生產(chǎn)唯一序列號(hào)提升性能,比如高并發(fā)下的訂單id序列

incrby orderId 100001????????

?

hash類型

1) 對(duì)象存儲(chǔ)

hset key field value

hset user {userId}? {user object}

?

hash類的數(shù)據(jù)結(jié)構(gòu),主要用來存放一些對(duì)象,把一些簡(jiǎn)單的對(duì)象給緩存起來,后續(xù)操作的時(shí)候,你可以直接僅僅修改這個(gè)對(duì)象中的某個(gè)字段的值。

?

典型場(chǎng)景:用戶購物車

?

?

list類型

注:list是一個(gè)有序列表,使用得好是可以玩出很多花樣的

使用場(chǎng)景1:棧、隊(duì)列

?

使用場(chǎng)景2:微博大V粉絲列表,微博關(guān)注消息推送,訂閱號(hào)關(guān)注消息推送等

?

key=大v? value=[a,b,c…]

可以用list存儲(chǔ)一些列表型的數(shù)據(jù)結(jié)構(gòu),如:粉絲列表、文章評(píng)論列表之類。

另外可以通過lrange命令,從某個(gè)元素開始讀取某段范圍的數(shù)據(jù),可以基于list實(shí)現(xiàn)分頁查詢,基于redis實(shí)現(xiàn)簡(jiǎn)單的高性能分頁,可以做類似微博那種下拉不斷分頁的效果,性能很高。

?

set類型

注:set集合是一個(gè)無序集合,自動(dòng)去重,因此可以通過set做數(shù)據(jù)的全局去重。

使用場(chǎng)景1:微信抽獎(jiǎng)小程序

srandmember key [count]:從集合中隨機(jī)獲取count名用戶(不會(huì)刪除)

spop key [count]:隨機(jī)從集合中移除并返回這個(gè)被移除的元素

?

使用場(chǎng)景2:微信微博點(diǎn)贊、收藏、標(biāo)簽

使用場(chǎng)景3:關(guān)注模型

?

通過sdiff、sinter、sunion實(shí)現(xiàn)集合的交集(比如微博的共同關(guān)注列表)、并集差集(可能感興趣的人)等

?

?

sorted set類型

這是一個(gè)排序的set,可以去重也可以排序,比如存儲(chǔ)的時(shí)候設(shè)置一個(gè)分?jǐn)?shù),則可以自動(dòng)根據(jù)分?jǐn)?shù)排序,最大的特點(diǎn)就是有個(gè)分?jǐn)?shù)可以通過自定義排序規(guī)則。

最常見的使用場(chǎng)景:排行榜

即將每個(gè)用戶以及對(duì)應(yīng)的分?jǐn)?shù)寫入,就可以獲取top 10的用戶,也可以獲取到排行榜里的排名情況。

命令:zadd、zrevrange

?

圖片摘自網(wǎng)絡(luò)。

?

關(guān)注微信公眾號(hào)“蝦米聊吧”,獲取更多知識(shí)資料干貨~,一起交流,一起學(xué)習(xí)~,

一起打卡學(xué)習(xí),一起交流進(jìn)步吧!

微信掃描二維碼,關(guān)注我的公眾號(hào)

?

總結(jié)

以上是生活随笔為你收集整理的redis常用数据类型的场景,你真的用对了么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。