黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > redis怎么實(shí)現(xiàn)數(shù)據(jù)庫(kù)類(lèi)似rank并列排名?

redis怎么實(shí)現(xiàn)數(shù)據(jù)庫(kù)類(lèi)似rank并列排名?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 15:55:20 1697183720

一、redis實(shí)現(xiàn)數(shù)據(jù)庫(kù)類(lèi)似rank并列排名的方法

Sorted Set是一個(gè)有序的集合,其中的每個(gè)成員都會(huì)被賦予一個(gè)分?jǐn)?shù)(score),通過(guò)對(duì)分?jǐn)?shù)的操作可以實(shí)現(xiàn)各種功能,例如排名。因此,可以使用Redis的Sorted Set來(lái)實(shí)現(xiàn)類(lèi)似數(shù)據(jù)庫(kù)中排名(rank)的功能。

1、創(chuàng)建一個(gè)Sorted Set

創(chuàng)建一個(gè)Sorted Set,將要排名的數(shù)據(jù)放入其中,下面是代碼示例:

zadd scores 60 "a"zadd scores 70 "b"zadd scores 80 "c"zadd scores 70 "d"

上述代碼將”a”的分?jǐn)?shù)設(shè)置為60,”b”的分?jǐn)?shù)設(shè)置為70,”c”的分?jǐn)?shù)設(shè)置為80,”d”的分?jǐn)?shù)設(shè)置為70。

2、使用ZRANK命令來(lái)獲取某個(gè)元素的排名

使用ZRANK命令來(lái)獲取某個(gè)元素的排名。例如,獲取”a”的排名,下面是代碼示例:

ZRANK scores "a"

返回的結(jié)果是0,表示”a”的排名是名列前茅名。如果要查詢的元素不存在于集合中,則返回空。

3、使用ZREVRANK獲取元素的反向排名

如果需要獲取并列排名,可以使用ZREVRANK獲取元素的反向排名。例如,獲取”b”和”d”的排名,下面是代碼示例:

ZREVRANK scores "b"ZREVRANK scores "d"

上述代碼將分別返回1和2,表示”b”和”d”的排名都是第二名。

如果需要獲取排名的成員及其分?jǐn)?shù),可以使用ZRANGE命令。例如,獲取前三名的成員和分?jǐn)?shù),下面是代碼示例:

ZRANGE scores 0 2 WITHSCORES

上述代碼將返回一個(gè)包含排名前三名的成員和分?jǐn)?shù)的列表。

二、redis介紹

1、定義

redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set—有序集合)和hash(哈希類(lèi)型)。這些數(shù)據(jù)類(lèi)型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改操作寫(xiě)入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。

Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)key/value存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。

Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹(shù)復(fù)制。存盤(pán)可以有意無(wú)意的對(duì)數(shù)據(jù)進(jìn)行寫(xiě)操作。由于完全實(shí)現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫(kù)在任何地方同步樹(shù)時(shí),可訂閱一個(gè)頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。

redis的官網(wǎng)地址,非常好記,是redis.io。(域名后綴io屬于國(guó)家域名,是british Indian Ocean territory,即英屬印度洋領(lǐng)地),Vmware在資助著redis項(xiàng)目的開(kāi)發(fā)和維護(hù)。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。從2013年5月開(kāi)始,Redis的開(kāi)發(fā)由Pivotal贊助。

2、數(shù)據(jù)模型

Redis的外圍由一個(gè)鍵、值映射的字典構(gòu)成。與其他非關(guān)系型數(shù)據(jù)庫(kù)主要不同在于:Redis中值的類(lèi)型不僅限于字符串,還支持如下抽象數(shù)據(jù)類(lèi)型:

字符串列表無(wú)序不重復(fù)的字符串集合有序不重復(fù)的字符串集合鍵、值都為字符串的哈希表

值的類(lèi)型決定了值本身支持的操作。Redis支持不同無(wú)序、有序的列表,無(wú)序、有序的集合間的交集、并集等高級(jí)服務(wù)器端原子操作。

3、存儲(chǔ)

redis使用了兩種文件格式,即全量數(shù)據(jù)和增量請(qǐng)求。全量數(shù)據(jù)格式是把內(nèi)存中的數(shù)據(jù)寫(xiě)入磁盤(pán),便于下次讀取文件進(jìn)行加載;增量請(qǐng)求文件則是把內(nèi)存中的數(shù)據(jù)序列化為操作請(qǐng)求,用于讀取文件進(jìn)行replay得到數(shù)據(jù),序列化的操作包括SET、RPUSH、SADD、ZADD。redis的存儲(chǔ)分為內(nèi)存存儲(chǔ)、磁盤(pán)存儲(chǔ)和log文件三部分,配置文件中有三個(gè)參數(shù)對(duì)其進(jìn)行配置。save seconds updates,save配置,指出在多長(zhǎng)時(shí)間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件。這個(gè)可以多個(gè)條件配合,比如默認(rèn)配置文件中的設(shè)置,就設(shè)置了三個(gè)條件。appendonly yes/no ,appendonly配置,指出是否在每次更新操作后進(jìn)行日志記錄,如果不開(kāi)啟,可能會(huì)在斷電時(shí)導(dǎo)致一段時(shí)間內(nèi)的數(shù)據(jù)丟失。因?yàn)閞edis本身同步數(shù)據(jù)文件是按上面的save條件來(lái)同步的,所以有的數(shù)據(jù)會(huì)在一段時(shí)間內(nèi)只存在于內(nèi)存中。appendfsync no/always/everysec ,appendfsync配置,no表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤(pán),always表示每次更新操作后手動(dòng)調(diào)用fsync()將數(shù)據(jù)寫(xiě)到磁盤(pán),everysec表示每秒同步一次。

4、相關(guān)參數(shù)

在我們成功安裝Redis后,我們直接執(zhí)行redis-server即可運(yùn)行Redis,此時(shí)它是按照默認(rèn)配置來(lái)運(yùn)行的(默認(rèn)配置甚至不是后臺(tái)運(yùn)行)。我們希望Redis按我們的要求運(yùn)行,則我們需要修改配置文件,Redis的配置文件就是我們上面第二個(gè)cp操作的redis.conf文件,它被我們拷貝到了/usr/local/redis/etc/目錄下。修改它就可以配置我們的server了。如何修改?下面是redis.conf的主要配置參數(shù)的意義:

daemonize:是否以后臺(tái)daemon方式運(yùn)行pidfile:pid文件位置port:監(jiān)聽(tīng)的端口號(hào)timeout:請(qǐng)求超時(shí)時(shí)間loglevel:log信息級(jí)別logfile:log文件位置databases:開(kāi)啟數(shù)據(jù)庫(kù)的數(shù)量save * *:保存快照的頻率,名列前茅個(gè)*表示多長(zhǎng)時(shí)間,第二個(gè)*表示執(zhí)行多少次寫(xiě)操作。在一定時(shí)間內(nèi)執(zhí)行一定數(shù)量的寫(xiě)操作時(shí),自動(dòng)保存快照。可設(shè)置多個(gè)條件rdbcompression:是否使用壓縮dbfilename:數(shù)據(jù)快照文件名(只是文件名,不包括目錄)dir:數(shù)據(jù)快照的保存目錄(這個(gè)是目錄)appendonly:是否開(kāi)啟appendonlylog,開(kāi)啟的話每次寫(xiě)操作會(huì)記一條log,這會(huì)提高數(shù)據(jù)抗風(fēng)險(xiǎn)能力,但影響效率appendfsync:appendonlylog如何同步到磁盤(pán)(三個(gè)選項(xiàng),分別是每次寫(xiě)都強(qiáng)制調(diào)用fsync、每秒啟用一次fsync、不調(diào)用fsync等待系統(tǒng)自己同步)

延伸閱讀1:Redis一些常用命令

TYPE key:用來(lái)獲取某key的類(lèi)型KEYS pattern:匹配所有符合模式的key,比如KEYS * 就列出所有的key了,當(dāng)然,復(fù)雜度O(n)RANDOMKEY:返回隨機(jī)的一個(gè)keyRPUSH key string:將某個(gè)值加入到一個(gè)key列表末尾LPUSH key string:將某個(gè)值加入到一個(gè)key列表頭部LLEN key:列表長(zhǎng)度LRANGE key start end:返回列表中某個(gè)范圍的值,相當(dāng)于mysql里面的分頁(yè)查詢那樣LTRIM key start end:只保留列表中某個(gè)范圍的值
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
mysql.sock文件是怎么起作用的?

一、mysql.sock文件的工作原理在MySQL中,mysql.sock文件是用于實(shí)現(xiàn)本地套接字(socket)連接的一種機(jī)制。它在Unix或類(lèi)Unix系統(tǒng)上使用,允許客...詳情>>

2023-10-13 17:39:11
oracle為什么要繼續(xù)開(kāi)發(fā)mysql?

一、oracle為什么要繼續(xù)開(kāi)發(fā)mysql應(yīng)該是之前收購(gòu)的時(shí)候有協(xié)議吧,而且,本身面向的客戶也不太一樣。oracle也有不付費(fèi)的用戶,mysql有社區(qū)版,但...詳情>>

2023-10-13 17:27:29
低代碼平臺(tái)的開(kāi)發(fā),數(shù)據(jù)庫(kù)是怎么選擇的?

一、低代碼平臺(tái)的開(kāi)發(fā),數(shù)據(jù)庫(kù)是怎么選擇的如果你選擇的低代碼開(kāi)發(fā)平臺(tái)支持多種數(shù)據(jù)庫(kù),那就選你最熟悉的吧。除了oracle這種賊貴的,和postgres...詳情>>

2023-10-13 17:25:32
MySQL本地事務(wù)和MySQL XA事務(wù)的區(qū)別是什么?

一、MySQL本地事務(wù)和MySQL XA事務(wù)的區(qū)別MySQL本地事務(wù)是指在單個(gè)數(shù)據(jù)庫(kù)連接上執(zhí)行的事務(wù)操作,通常用于單個(gè)數(shù)據(jù)庫(kù)實(shí)例上的事務(wù)處理。它遵循數(shù)據(jù)...詳情>>

2023-10-13 17:16:58
foxmail 7.2使用的是什么方式存儲(chǔ)的郵件?

一、foxmail 7.2使用的是什么方式存儲(chǔ)的郵件1、foxmail郵件存儲(chǔ)位置在大家的安裝目錄下,我們可以直接右擊foxmail圖標(biāo)然后我們點(diǎn)擊“打開(kāi)文件位...詳情>>

2023-10-13 17:08:36
快速通道
一级片片| 欧美激情一区二区三区在线| 日韩在线观看网站| 天天色成人网| 久久国产影院| 欧美爱爱网| 国产一区二区精品久久| 日韩av片免费播放| 久久99爰这里有精品国产| 国产精品123| 日日爽天天| 成人av在线播放| 九九精品在线| 青青青草影院| 人人干人人插| 国产福利免费观看| 成人免费观看网欧美片| 精品国产亚洲人成在线| 可以免费看污视频的网站| 久久久久久久网| 精品在线观看国产| 韩国毛片基地| 久久精品欧美一区二区| 99久久网站| 一本高清在线| 四虎久久精品国产| 91麻豆精品国产自产在线| 999精品视频在线| a级毛片免费全部播放| 欧美激情一区二区三区在线| 99热精品在线| 99色视频在线观看| 欧美一级视频高清片| 国产欧美精品午夜在线播放| 韩国毛片免费大片| 国产精品1024永久免费视频| 国产成人欧美一区二区三区的| 国产美女在线观看| 韩国三级一区| 在线观看成人网| 亚洲www美色| 国产精品自拍在线观看| 国产一区精品| 久久精品免视看国产成人2021| 精品久久久久久中文字幕一区| 国产不卡高清| 日韩综合| 国产精品自拍在线| 国产成人啪精品| 久久成人综合网| 欧美a级大片| 久久国产精品只做精品| 国产国产人免费视频成69堂| 精品视频免费观看| 高清一级毛片一本到免费观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产视频在线免费观看| 黄视频网站免费| 久久99欧美| 精品久久久久久影院免费| 一级片片| 国产a毛片| 精品国产三级a| 精品国产三级a∨在线观看| 一级毛片视频播放| 国产伦久视频免费观看视频| 黄视频网站在线免费观看| 国产成人欧美一区二区三区的| 99热视热频这里只有精品| 国产伦理精品| 久久国产精品只做精品| 国产视频久久久| 国产一区二区精品久久| 97视频免费在线观看| 精品久久久久久免费影院| 欧美爱色| 日韩综合| 欧美一级视| 欧美爱爱网| 国产精品1024在线永久免费| 99色视频| 欧美激情伊人| 亚洲女初尝黑人巨高清在线观看| 高清一级做a爱过程不卡视频| 国产伦久视频免费观看 视频| 国产美女在线观看| 成人免费观看视频| 国产91素人搭讪系列天堂| 午夜在线亚洲| 欧美1区2区3区| 国产伦久视频免费观看 视频| 日韩av成人| 国产美女在线观看| 久久精品免视看国产明星| 亚洲女人国产香蕉久久精品| 国产不卡在线观看视频| 久草免费在线色站| 精品国产三级a| 999久久久免费精品国产牛牛| 日本在线不卡视频| 四虎影视库| 免费一级片在线| 四虎影视库| 精品视频在线看| 国产一区二区福利久久| 欧美18性精品| 日韩字幕在线| 99热精品一区| 久久精品道一区二区三区| a级毛片免费观看网站| 天天色色网| 成人高清视频免费观看| 国产精品1024永久免费视频| 精品国产香蕉在线播出| 国产伦久视频免费观看 视频| 日本免费乱人伦在线观看| 国产成人女人在线视频观看| 精品视频在线观看一区二区| 国产伦久视频免费观看视频| 999精品视频在线| 青草国产在线观看| 国产网站在线| 99久久精品国产高清一区二区| 久久成人性色生活片| 黄视频网站在线观看| 国产不卡高清| 可以在线看黄的网站| 精品视频一区二区三区| 久久成人综合网| 国产精品123| 国产伦理精品| 久久福利影视| 午夜在线亚洲男人午在线| 色综合久久天天综线观看| 欧美国产日韩精品| 国产亚洲精品成人a在线| 亚洲精品永久一区| 色综合久久天天综合绕观看| 国产精品自拍在线观看| 亚欧成人乱码一区二区| 国产伦久视频免费观看视频| 亚洲天堂免费| 天天做日日干| 欧美激情一区二区三区视频高清| 精品视频一区二区三区免费| 午夜在线观看视频免费 成人| 日韩一级黄色大片| 毛片的网站| 国产一区精品| 可以在线看黄的网站| 日韩一级黄色片| 精品视频在线观看一区二区三区| 精品国产香蕉伊思人在线又爽又黄| 韩国毛片基地| 国产视频一区在线| 日韩免费片| 亚洲第一色在线| 色综合久久天天综合绕观看| 九九热国产视频| 国产成+人+综合+亚洲不卡| 四虎久久精品国产| 999精品影视在线观看| 可以免费在线看黄的网站| 日韩av成人| 亚洲第一色在线| 久久国产精品永久免费网站| 精品视频免费看| 日本特黄特黄aaaaa大片| 91麻豆精品国产高清在线| 黄视频网站在线看| 久久久久久久免费视频| 麻豆网站在线看| 成人免费一级纶理片| 国产伦精品一区二区三区无广告 | 999精品影视在线观看| 精品视频在线看 | 日本特黄一级| 国产一区二区精品久久91| 国产不卡在线观看| 黄视频网站免费观看| 91麻豆精品国产片在线观看| 一级女性大黄生活片免费| 久草免费在线色站| 久久精品道一区二区三区| 欧美a免费| 欧美国产日韩一区二区三区| 亚洲 激情| 国产亚洲精品aaa大片| 一级女人毛片人一女人| 久久成人性色生活片| 欧美国产日韩久久久| 欧美另类videosbestsex视频| 99久久精品国产国产毛片| 精品视频在线观看免费| 91麻豆精品国产高清在线| 久久国产一区二区| 久久久成人影院| 欧美激情在线精品video| 欧美另类videosbestsex高清| 欧美国产日韩在线|