」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 雷迪斯2

雷迪斯2

發佈於2024-08-15
瀏覽:576

Redis 2

Redis - 清單、集合和 HashMap

這是上一篇的延續

除了鍵值對之外,還有其他 3 種資料型別可用

清單

此資料結構類似 Python 中的列表或 Javascript 或 C# 中的陣列。它們可用於保存最近使用過的物品。常見的操作有;

營運 說明 範例 進一步說明
LPUSH 將項目加入到清單的開頭 LPUSH好友「索菲亞」 類似javascript中的Array.unshift
LRANGE 取得清單中的所有項目 LRANGE好友0 -1 類似python中的列表0是第一項,-1是最後一項
反推 將項目加到列表末尾 RPUSH 朋友「Poe」 類似javascript中的Array.push
LPOP 從清單開頭刪除項目 LPOP好友「Poe」 如果 Poe 存在於清單中則回傳 1,否則傳回 0
RPOP 從清單結束時刪除項目 RPOP好友「索菲亞」 如果 Sophia 存在於清單中則回傳 1,否則傳回 0

僅包含唯一項目的資料結構。類似 Python 中的集合、Javascript 中的集合和 C# 中的 HashSet。常見操作包括;

營運 說明 範例 進一步說明
SADD 在集合中加入一個值 SADD 顏色「粉紅色」
會員 傳回集合的成員 SMEMBERS 顏色 將傳回設定顏色的所有項目
SREM 刪除集合的成員 SREM 顏色「粉紅色」 如果粉紅色存在於清單中則回傳 1,否則傳回 0

哈希圖

哈希圖是一組鍵值對。然而,哈希圖不能嵌套。讓我們來看一個有姓名、電子郵件和電話號碼的人的案例場景

HSET person name "Joe" # Adds the key-value pair {name : joe} to the hashmap
HSET person email "[email protected]" # Adds the key-value pair {email : [email protected]} to the hashmap
HSET person phone_number " 2345656655413" # Adds the key-value pair {number : ....} to the hashmap

HGET 指令可用來取得 hashmap 中特定鍵的值

HGET person name # returns "Joe"

HGETALL指令hashmap中的所有鍵值對

HGETALL person 

1) "name"
2) "Joe"
3) "email"
4) "[email protected]"
5) "phone_number"
6) " 2345656655413"

HDEL指令透過鍵刪除鍵值對

HDEL person name # removes {name : joe}

HEXISTS 指令檢查雜湊集中是否存在某個鍵

HEXISTS person name # returns 0 because we've deleted it before

這些是開發人員需要了解的大部分基本命令。


常見面試問題

  1. Redis的完整意義是什麼? :Redis代表遠端字典伺服器

  2. Redis 與 MySQL 等傳統資料庫有何不同? :Redis 運行在主記憶體中,具有快速存取值的基本操作,不像 SQL 駐留在磁碟上並具有廣泛的增刪改查操作

  3. Redis 在資料大小和類型方面有哪些限制? :Redis 旨在保存適合機器記憶體的值。它不適合具有連接的複雜關係模型或建立大型 blob

  4. 如何使用Redis在分散式環境中處理快取? :透過將redis實例設定為資料庫前面的快取層來處理快取。使用一致性雜湊來分配快取節點上的金鑰,確保均勻的負載分佈並減少快取未命中

  5. 何時應該在 Redis 中使用清單資料型別? :清單非常適合持久原子佇列、作業佇列、日誌、緩衝區和許多其他用例

版本聲明 本文轉載於:https://dev.to/ezekiel_77/redis-2-fec?1如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • Java中Lambda表達式為何需要“final”或“有效final”變量?
    Java中Lambda表達式為何需要“final”或“有效final”變量?
    Lambda Expressions Require "Final" or "Effectively Final" VariablesThe error message "Variable used in lambda expression shou...
    程式設計 發佈於2025-07-08
  • 如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求模擬瀏覽器行為,以及偽造的用戶代理提供了一個用戶 - 代理標頭一個有效方法是提供有效的用戶式header,以提供有效的用戶 - 設置,該標題可以通過browser和Acterner Systems the equestersystermery和操作系統。通過模仿像Chro...
    程式設計 發佈於2025-07-08
  • 左連接為何在右表WHERE子句過濾時像內連接?
    左連接為何在右表WHERE子句過濾時像內連接?
    左JOIN CONUNDRUM:WITCHING小時在數據庫Wizard的領域中變成內在的加入很有趣,當將c.foobar條件放置在上面的Where子句中時,據說左聯接似乎會轉換為內部連接。僅當滿足A.Foo和C.Foobar標準時,才會返回結果。 為什麼要變形?關鍵在於其中的子句。當左聯接的右側...
    程式設計 發佈於2025-07-08
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-07-08
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-07-08
  • FastAPI自定義404頁面創建指南
    FastAPI自定義404頁面創建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    程式設計 發佈於2025-07-08
  • Java數組中元素位置查找技巧
    Java數組中元素位置查找技巧
    在Java數組中檢索元素的位置 利用Java的反射API將數組轉換為列表中,允許您使用indexof方法。 (primitives)(鏈接到Mishax的解決方案) 用於排序陣列的數組此方法此方法返回元素的索引,如果發現了元素的索引,或一個負值,指示應放置元素的插入點。
    程式設計 發佈於2025-07-08
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    在嘗試為JavaScript對象創建動態鍵時,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正確的方法採用方括號: jsobj ['key''i] ='example'1; 在JavaScript中,數組是一...
    程式設計 發佈於2025-07-08
  • 如何同步迭代並從PHP中的兩個等級陣列打印值?
    如何同步迭代並從PHP中的兩個等級陣列打印值?
    同步的迭代和打印值來自相同大小的兩個數組使用兩個數組相等大小的selectbox時,一個包含country代碼的數組,另一個包含鄉村代碼,另一個包含其相應名稱的數組,可能會因不當提供了exply for for for the uncore for the forsion for for ytry...
    程式設計 發佈於2025-07-08
  • 如何使用Regex在PHP中有效地提取括號內的文本
    如何使用Regex在PHP中有效地提取括號內的文本
    php:在括號內提取文本在處理括號內的文本時,找到最有效的解決方案是必不可少的。一種方法是利用PHP的字符串操作函數,如下所示: 作為替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式來搜索特...
    程式設計 發佈於2025-07-08
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-07-08
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-07-08
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    程式設計 發佈於2025-07-08
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-07-08
  • 在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在C中的顯式刪除 在C中的動態內存分配時,開發人員通常會想知道是否需要手動調用“ delete”操作員在heap-exprogal exit exit上。本文深入研究了這個主題。 在C主函數中,使用了動態分配變量(HEAP內存)的指針。當應用程序退出時,此內存是否會自動發布?通常,是。但是,即使在...
    程式設計 發佈於2025-07-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3