redis 有序集合zrange和zrangebyscore的區別

起因是查詢數據,用了zrangebyscore 但是一直顯示沒數據
具體命令zrangebyscore key 0 -1 withscores, 原有印象中一直是這么用的,但是突然查不出來了, 于是搜了下問題所在。

通過分數查看 不能用0和-1表示最小和最大,只能用分數來指定范圍
zrevrangebyscore key +inf -inf withscores 按score 從大到小排
zrangebyscore key -inf +inf withscores 按score從小到大排

-inf:代表負無窮大,意味著分數下限沒有限制。
+inf:代表正無窮大,意味著分數上限沒有限制。
zange key 0 -1 withscores 是通過索引進行查看,所以能用0和-1

下面是具體的區別:

在 Redis 中,ZRangeZRangeByScore 都是用于從有序集合(ZSet)中獲取元素的命令,但它們的使用方式和應用場景有所不同,下面為你詳細介紹:

基本語法

  • ZRange
ZRANGE key start stop [WITHSCORES]
  • ZRangeByScore
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

具體區別

1. 查詢依據不同
  • ZRange:依據元素在有序集合中的索引位置來獲取元素。有序集合中的元素按照分數從小到大排序,索引從 0 開始。可以使用負數索引,-1 表示最后一個元素,-2 表示倒數第二個元素,以此類推。
  • ZRangeByScore:依據元素的分數范圍來獲取元素。通過指定最小分數(min)和最大分數(max),可以獲取分數在這個范圍內的所有元素。
2. 參數含義不同
  • ZRange
    • key:有序集合的鍵名。
    • start:起始索引。
    • stop:結束索引。
    • [WITHSCORES]:可選參數,若指定該參數,結果會同時返回元素及其分數。
  • ZRangeByScore
    • key:有序集合的鍵名。
    • min:分數范圍的最小值,可以使用 -inf 表示負無窮大。
    • max:分數范圍的最大值,可以使用 +inf 表示正無窮大。
    • [WITHSCORES]:可選參數,若指定該參數,結果會同時返回元素及其分數。
    • [LIMIT offset count]:可選參數,用于分頁,offset 表示偏移量,count 表示返回的元素數量。
3. 使用場景不同
  • ZRange:適用于需要按照元素在有序集合中的順序獲取元素的場景,例如獲取排行榜的前 N 名、后 N 名等。
  • ZRangeByScore:適用于需要根據元素的分數范圍來獲取元素的場景,例如獲取分數在某個區間內的所有元素、獲取分數高于或低于某個值的所有元素等。

示例代碼

# 向有序集合中添加元素
ZADD myzset 1 "one" 2 "two" 3 "three" 4 "four" 5 "five"# 使用 ZRange 獲取所有元素
ZRANGE myzset 0 -1 WITHSCORES# 使用 ZRangeByScore 獲取分數在 2 到 4 之間的元素
ZRANGEBYSCORE myzset 2 4 WITHSCORES

總結

  • ZRange 基于索引位置獲取元素,更關注元素在有序集合中的順序。
  • ZRangeByScore 基于分數范圍獲取元素,更關注元素的分數。

在實際使用中,需要根據具體的需求選擇合適的命令。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81053.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81053.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81053.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Tableau 基礎表制作

目錄 1.數據連接 2. 數據可視化 3. 基礎表制作 3.1 對比分析:比大小 1. 柱狀圖 2. 條形圖 3. 熱力圖 4. 氣泡圖 5. 詞云 3.2 變化分析:看趨勢 1. 折線圖 2. 面積圖 3.3 構成分析:看占比 1. 餅圖 2. 樹地圖 3. 堆積圖 3.4 關…

反序列化漏洞1

一、PHP類與對象 1. 類 概念理解: 類是共享相同結構和行為的對象的集合,可以理解為特征的提取。例如將耳朵長、尾巴短、紅眼睛、吃胡蘿卜、蹦跳行走的動物特征抽象為"兔子"類。代碼結構: 使用class關鍵字定義類類名遵循大駝峰命名法包含成員變量(屬性)和…

為什么要對 ACI 網絡進行升級?

一、硬件演進 1. 交換機接口 前面板接口由 1/10G 升級至 10/25/100G fabric 上行鏈路 40G 升級至 100/400G 2. 交換機角色 交換機可以是 spine 或者 leaf,而不是固定角色 3. EOS APIC-SERVER-M2/L2 2024年6月30日 EOS,替換設備為 APIC-SERVER-M4/L4 二、網絡升級參考文…

DeepSeek+Cline:開啟自動化編程新紀元

目錄 一、引言:AI 編程時代的曙光二、認識 DeepSeek 和 Cline2.1 DeepSeek 是什么2.2 Cline 詳解2.3 兩者結合的魅力 三、DeepSeek Cline 安裝與配置全流程3.1 安裝 VS Code3.2 安裝 Cline 插件3.3 獲取 DeepSeek API Key3.4 配置 Cline 與 DeepSeek 連接 四、實戰演…

【展位預告】正也科技將攜營銷精細化管理解決方案出席中睿營銷論壇

在醫藥行業面臨政策深化、技術迭代、全球化競爭的多重挑戰下,第二屆中睿醫藥健康生態生長力峰會暨第三十五屆中睿醫藥營銷論壇將于廣州盛大啟幕。5月19-20日本次峰會以“聚焦政策變革、把握產業趨勢、構建生態共贏”為核心,旨在通過全產業鏈資源整合與創…

【深度學習】評估模型復雜度:GFLOPs與Params詳解

評估模型復雜度:GFLOPs與Params詳解 在深度學習模型設計與優化過程中,GFLOPs和Params是論文中兩個重要的評估指標,它們分別衡量模型的計算復雜度和參數量。本文將詳細介紹這兩個概念及其在實踐中的應用。 1. Params:模型參數量 …

Go語言->練習6例

1.go語言的接口實現 接口(interface)是一種類型,它定義了一組方法的集合。任何類型只要實現了接口中定義的所有方法,就被認為實現了該接口。 在Go語言中,使用接口的最佳實踐可以提高代碼的可讀性、可維護性和靈活性。…

Drivestduio 代碼筆記與理解

Rigid Node: 表示 car或者trucks Deformable Node : 表示一些 分布之外的 non-rigid 的運動物體, 比如遠處的行人等和Cyclist。 在 load_objects 會讀取每一個 dynamic objects 的 bounding box’的信息,具體如下: frame_instances 記錄了每…

《算法筆記》10.5小節——圖算法專題->最小生成樹 問題 E: Jungle Roads

題目描述 The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentlessly, so the large road network is too expensive to mai…

【音視頻】SDL簡介

官網:官網 文檔:文檔 SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發庫,使用C語言寫成。SDL提供數種控制圖像、聲音、輸出入的函數,讓開發者只 要用相同或是相似的代碼就可以開發出跨多…

SpringBoot + SSE 實時異步流式推送

前言 在當今數字化時代,實時數據處理對于企業的決策和運營至關重要。許多業務場景需要及時響應數據庫中的數據變化,例如電商平臺實時更新庫存、金融系統實時監控交易數據等。 本文將詳細介紹如何通過Debezium捕獲數據庫變更事件,并利用Serv…

ADS1299模擬前端(AFE)代替芯片——LHE7909

在現代醫療科技的飛速發展中,精確的生物電勢測量設備變得越來越重要。領慧立芯推出的LHE7909,是一款專為心電圖(ECG)和其他生物電勢測量設計的低噪聲24位模數轉換器(ADC),為醫療設備制造商提供了…

如何實現Redis和Mysql中數據雙寫一致性

一、引言 今天我們來聊聊一個在分布式系統中非常常見但又十分棘手的問題——Redis與MySQL之間的雙寫一致性。我們在項目中多多少少都遇到過類似的困擾,緩存是用Redis,數據庫是用MySQL,但如何確保兩者之間的數據一致性呢?接下來我…

面試篇 - Transformer前饋神經網絡(FFN)使用什么激活函數?

1. FFN結構分解 原始Transformer的FFN層 FFN(x) max(0, xW? b?)W? b? # 原始論文公式 輸入:自注意力層的輸出 x(維度 d_model512) 擴展層:xW? b?(擴展為 d_ff2048) 激活函數:Re…

基于Python Flask的深度學習電影評論情感分析可視化系統(2.0升級版,附源碼)

博主介紹:?IT徐師兄、7年大廠程序員經歷。全網粉絲15W、csdn博客專家、掘金/華為云//InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? 🍅文末獲取源碼聯系🍅 👇🏻 精彩專欄推薦訂閱👇&#x1f3…

前端vue2修改echarts字體為思源黑體-避免侵權-可以更換為任意字體統一管理

1.下載字體 npm install fontsource/noto-sans-sc 不知道為什么我從github上面下載的不好使,所以就用了npm的 2.引用字體 import fontsource/noto-sans-sc; 在入口文件-main.js中引用 3.設置echats模板樣式 import * as echarts from echarts; // 在import的后…

51c自動駕駛~合集37

我自己的原文哦~ https://blog.51cto.com/whaosoft/13878933 #DETR->DETR3D->Sparse4D 走向長時序稀疏3D目標檢測 一、DETR 圖1 DETR架構 DETR是第一篇將Transformer應用到目標檢測方向的算法。DETR是一個經典的Encoder-Decoder結構的算法,它的骨干網…

【MongoDB篇】MongoDB的集合操作!

目錄 引言第一節:集合的“誕生”——自動出現還是手動打造?🤔第二節:集合的“查閱”——看看這個數據庫里有哪些柜子?📂👀第三節:集合的“重命名”——給文件柜換個名字!…

Goland終端PowerShell命令失效

Goland終端Terminal的PowerShell不能使用,明明windows上升級了PowerShell 7設置了配置文件,但是只能在windows終端下使用,goland終端下直接失效報錯,安裝升級PowerShell請看Windows11終端升級PowerShell7 - HashFlag - 博客園 問…

簡單分析自動駕駛發展現狀與挑戰

一、技術進展與市場滲透 技術分級與滲透率 當前量產乘用車的自動駕駛等級以L2為主(滲透率約51%),L3級處于初步落地階段(滲透率約20%),而L4級仍處于測試和示范運營階段(滲透率約11%)2…