redis的zset排序原理,redis zset怎么排序_redis(set、zset)類型使用和使用場景

 2023-12-06 阅读 20 评论 0

摘要:Redis的數據類型Redis的數據類型共有五種:string,list,hash,set,zset;String 字符串相對來說做平常,key-value,類似是hashmap的用法;List 隊列,可以雙向的存值,設計時,也可以簡單用來當

Redis的數據類型
Redis的數據類型共有五種:string,list,hash,set,zset;
String 字符串相對來說做平常,key-value,類似是hashmap的用法;
List 隊列,可以雙向的存值,設計時,也可以簡單用來當隊列模式;
Hash 字典,一個key 對應多個值;
Set 無序的集合;
Zset 有序的集合;集合set
redis集合(set)類型和list列表類型類似,都可以用來存儲多個字符串元素的集合。但是和list不同的是set集合當中不允許重復的元素。而且set集合當中元素是沒有順序的,不存在元素下標。
redis的set類型是使用哈希表構造的,它支持集合內的增刪改查,并且支持多個集合間的交集、并集、差集操作。可以利用這些集合操作,解決程序開發過程當中很多數據集合間的問題)合集set——基本命令
sadd
語法:sadd key value
作用:將一個或多個值 value 加入到集合中
返回值:數字,添加成功的個數,如果元素已經存在,則不會添加
Smembers
語法:smembers key
作用:獲取集合中所有的元素
返回值:元素的list

v2-0062c47348e4279cdd1b446e2659cb3f_b.jpg

Sismember
語法:sismember key value
作用:判斷集合中是否有該元素
返回值:有,返回1,無返回0;

v2-81a918b9493b885a6d2b45e26951057e_b.jpg


Scard
語法:scard key
作用:獲取集合中的元素個數
返回值:獲取元素個數
srem
語法:srem key value
作用:刪除集合中對應的值
Sscan
語法:sscan key match
作用:查集合中的值;
sinter
語法:sinter key key
作用:獲取兩個集合中的交際。
sunion
語法:sunion key key
作用:
兩個集合的并集;
sdiff
兩個集合的差集;
使用場景
1. 標簽
給用戶打上感興趣的標簽,然后就能知道相同不同用戶擁有相互愛好的群體;
2.公共好友
一個人的好友,這樣的話就能知道共同擁有的好友;有序合集zset
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
zset的成員是唯一的,但分數(score)卻可以重復。
使用場景:
1、根據時間排序的新聞列表等,
2、 閱讀排行榜
實現方式:edis sorted set的內部使用HashMap和跳躍表(SkipList)來保證數據的存儲和有序,HashMap里放的是成員到score的映射,而跳躍表里存放的是所有的成員,排序依據是HashMap里存的score,使用跳躍表的結構可以獲得比較高的查找效率,并且在實現上比較簡單。
作者:liuwj的ing
鏈接:https://www.jianshu.com/p/eddd2388d077
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/188050.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息