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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis 学习笔记(六) sorted_set数据类型

發(fā)布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis 学习笔记(六) sorted_set数据类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一.?sorted_set數(shù)據(jù)類型的介紹

二.sorted_set數(shù)據(jù)類型的基本操作

三.sorted_set實現(xiàn)排行榜

四.sorted_set類型的應(yīng)用場景(一)

五.sorted_set類型應(yīng)用場景(二)

? ? ? ? ? ?

一.?sorted_set數(shù)據(jù)類型的介紹

? ? ? ? ? ?新的存儲需求:數(shù)據(jù)排序有利于數(shù)據(jù)的有效展示,需要根據(jù)一種可以根據(jù)自身特征排序方式

? ? ? ? ? ?sorted_set數(shù)據(jù)----支持排序

? ? ? ? ? ?需要的存儲結(jié)構(gòu):新的存儲模型,可以保存可排序的數(shù)據(jù)

? ? ? ? ? ?sorted_set類型:在set的存儲結(jié)構(gòu)基礎(chǔ)上添加可排序的字段

? ? ? ? ??

二.sorted_set數(shù)據(jù)類型的基本操作

? ? ? ? ? ? ? 1.添加數(shù)據(jù)

? ? ? ? ? ? ? ?zadd? key? score1? member1? score2 member2

? ? ? ? ? ? ??

? ? ? ? ? ? ? 2.獲取全部數(shù)據(jù)

? ? ? ? ? ? ? zrange? key start? ?stop? ? ?[withscores]? ? ? ? ??展示權(quán)限 正向操作 由小到大

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ??

? ? ? ? ? ? ? zrevrange? key start stop???[withscores]? ? ? ? ? ?展示權(quán)限 反向操作 由大到小

? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ?3.刪除數(shù)據(jù)

? ? ? ? ? ? ? ? ?zrem key? memeber1 [memeber2]

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? 4.sorted_set的常用操作

? ? ? ? ? ? ? ?(1)按條件操作數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ?zrangebyscore key min max [withscore] [limit] 從score 的一個范圍到另一個范圍 正序

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? zrevrangebyscore key max? min [withscore] [limit]?從score 的一個范圍到另一個范圍? 倒敘

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ?(2) 按條件刪除數(shù)據(jù)

? ? ? ? ? ? ? ? ? zremrangebyrank? ?key? start stop? 按索引刪除

? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?zremrangebyscore key? min max 按分數(shù)權(quán)限刪除

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?注意:

? ? ? ? ? ? ? ? ? ? ? ? ? ?min與max用于限定搜索查詢的條件

? ? ? ? ? ? ? ? ? ? ? ? ? start與stop用于限定查詢范圍,作用于索引,表示開始和結(jié)束的索引

? ? ? ? ? ? ? ? ? ? ? ? ? offset和count用于限定查詢范圍,作用于查詢結(jié)果,表示開始位置和數(shù)據(jù)總量

?

? ? ? ? ? ? ? ?5.獲取集合數(shù)據(jù)總量

? ? ? ? ? ? ? ? ? ? ? zcard key

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? zcount key? min? max 查看score數(shù)據(jù)范圍里有多少個數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ?6.集合交并操作

? ? ? ? ? ? ? ? ? zinterstore? destination numkeys key [key ...]? 交集

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? zunionstore? destination numkeys? key1 [key ...]? 并集

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? 求交并集會將score權(quán)值進行求和操作

三.sorted_set實現(xiàn)排行榜

? ? ? ? ? ? ? 排序的問題

? ? ? ? ? ? 業(yè)務(wù)場景:

? ? ? ? ? ? ? ? ? ? ? ? ? ?為所有排名的資源建立排序依據(jù)

? ? ? ? ? ? 解決方案:

? ? ? ? ? ? ? ? ? ? ? ? ? 獲取數(shù)據(jù)對應(yīng)的索引(排名)

? ? ? ? ? ? ? ? ? ? ? ? ? zrank key member

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ?zrevrank key member

? ? ? ? ? ? ? ? ? ? ? ? ?

?

? ? ? ? ? ? ? ? ? ? ? ? ?score 值獲取與修改

? ? ? ? ? ? ? ? ? ? ? ? zscore? key member

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? zincrby? key? increment member

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ?tips13:

? ? ? ? ? ? ? ? ? ? ? redis應(yīng)用于計數(shù)器組合排序功能對應(yīng)的排名

?

? ? ? ? ? sorted_set類型

? ? ? ? ? ? ? ? ? ? 1.score 保存的數(shù)據(jù)存儲空間為64位,整數(shù)范圍是? -9007199254740992~9007199254740992

? ? ? ? ? ? ? ? ? ? 2.score保存的數(shù)據(jù)也可以是一個雙精度的doubbo值,基于雙精度浮點數(shù)的特征,但可能會丟失精度

? ? ? ? ? ? ? ? ? ? 3.sorted_set底層存儲還是基于set結(jié)構(gòu)的,因此數(shù)據(jù)不能重復,如果重復添加相同的數(shù)據(jù),score值將被反復覆蓋,保留最后一次修改的結(jié)果

?

四.sorted_set類型的應(yīng)用場景(一)

? ? ? ? ? ? 業(yè)務(wù)場景

? ? ? ? ? ? ? ? ?1.vip體驗,網(wǎng)站定期開啟投票討論限時進行 sorted_set有效管理此類信息

? ? ? ? ? ??解決方案

? ? ? ? ? ? ? ? ? ? ?1.對于基于時間線限定的任務(wù)處理,將處理時間記錄為score值,利用排序功能區(qū)分處理的前后順序

? ? ? ? ? ? ? ? ? ? ?2.記錄下一個要處理的時間,當?shù)狡诤筇幚韺?yīng)任務(wù),移除redis中的記錄,并記錄下一個要處理的時間

? ? ? ? ? ? ? ? ? ? ?3.當新任務(wù)加入時,判定并更新當前下一個要處理的任務(wù)時間

? ? ? ? ? ? ? ? ? ? ?4.為了提升sorted_set性能,通常將任務(wù)根據(jù)特征存儲成若干個sorted_set,例如將1小時內(nèi),1天內(nèi),1周內(nèi),一月內(nèi),季度,年度等,操作的若干任務(wù)都納入到1小時內(nèi)處理的隊列中

? ? ?

? ? ? ? ? ? ? ? ?tips14:

? ? ? ? ? ? ? ? ? ? ? ? ?redis應(yīng)用于定時任務(wù)執(zhí)行順序管理和任務(wù)過期管理

?

?

五.sorted_set類型應(yīng)用場景(二)

? ? ? ? ? ?業(yè)務(wù)場景

? ? ? ? ? ? ? ? ? ? ? ?任務(wù)/消息權(quán)重設(shè)定應(yīng)用

? ? ? ? ? ? ? ? ? ? ? ?當任務(wù)或者消息待處理,形成任務(wù)隊列或者消息隊列時,對于高優(yōu)先級的任務(wù)要保障對其優(yōu)先應(yīng)用,如何實現(xiàn)任務(wù)權(quán)重管理,延時隊列

? ? ? ? ? ?解決方案:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 對于帶權(quán)重的任務(wù),優(yōu)先處理權(quán)重高的任務(wù),采取score記錄權(quán)重即可

? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?多條件任務(wù)權(quán)重設(shè)定

? ? ? ? ? ? ? ? ? 如果權(quán)重條件過多,需要對排序score值,進行處理,保障score值能夠兼容2個或多個條件,例如

? ? ? ? ? ? ? ? ? ? 1.外貿(mào)訂單優(yōu)于國內(nèi)訂單,總裁訂單優(yōu)于員工訂單

? ? ? ? ? ? ? ? ? ? 2.因score長度受限,需對數(shù)據(jù)進行截斷處理,尤其是時間設(shè)置小時或分鐘級可(折算后)

? ? ? ? ? ? ? ? ? ? 3.先設(shè)定訂單類被,后設(shè)定訂單發(fā)起角色類別,整個score長度必須是統(tǒng)一的,不足位補0,第一道排序規(guī)則首位不得為0

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?例如 外貿(mào)101? 國內(nèi)102 經(jīng)理 004 員工 008

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?員工下的外貿(mào)單為 101008(小)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?經(jīng)理下的國內(nèi)單為 102004(大)

? ? ? ? ? ?

? ? ? ? ? ? ? ? ?tips15:

? ? ? ? ? ? ? ? ? ? ? ?redis應(yīng)用定時任務(wù)/消息隊列定時管理

? ? ? ? ? ? ? ? ? ? ??

?

?

?

?

?

?

?

?

?

?

?

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?

?

? ? ? ? ??

? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ??

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的redis 学习笔记(六) sorted_set数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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