首頁>其它>

如何在 Redis 中獲取所有密鑰

  • 大多數(但不是全部)對象使用密鑰

    • 使用命名空間

  • 檢索所有現有密鑰

與其他非關係型數據庫引擎一樣,有時很難理解 Redis 如何處理數據結構和關聯。當將 Redis 與具有隔離表的更傳統的關係數據庫進行比較時尤其如此,每個表都包含多行和多列來存放數據。

由於 Redis 是非關係型的,因此係統中的所有內容都以key/value最簡單的級別配置了基本對。特別是在開發過程中,跟蹤數據庫中已經存在的所有內容可能會很棘手,因此在這個簡短的教程中,我們將介紹keys使用一些簡單命令從 Redis 數據庫中檢索所有內容的方法。

對於使用 Redis 進行的絕大多數數據存儲,數據將存儲在一個簡單的對中。這最好通過redis-cli(命令行界面)使用GETSET命令來顯示。

例如,我們可能想要存儲一些關於的信息books,例如我們的一些收藏夾的titleauthor

> SET title "The Hobbit"OK> SET author "J.R.R. Tolkien"OK

和是我們設置的和之後指定的實際字符串值。所以我們可以用 來查看它們,如下所示:

> GET title"The Hobbit"> GET author"J.R.R. Tolkien"

使用命名空間

這一切都很好,但是我們如何添加另一本書?我們不能重複使用相同的和鍵,否則我們將覆蓋現有數據。相反,我們可以通過使用:分隔符並給每個或條目一個唯一的數字來使用命名空間語法key

> SET title:1 "The Hobbit"OK> SET author:1 "J.R.R. Tolkien"OK> SET title:2 "The Silmarillion"OK> SET author:2 "The Silmarillion"OK

現在使用還需要添加唯一的數字:

> GET title:1> GET title:2"The Silmarillion"

檢索所有現有密鑰

事實證明,我們在上面發出的每個命令都在我們的 Redis 數據庫中創建了一個新的、唯一的。要獲取所有當前存在的列表,只需使用以下KEYS命令:

> KEYS *1) "title:1"2) "title:2"3) "title"4) "author:2"5) "author"6) "author:1"

通過使用星號 ( *)(充當通配符搜索),我們要求 Redis 檢索系統中的所有密鑰。因此,我們不僅看到了我們的兩個原始版本和密鑰,還看到了隨後的四個枚舉版本。

以下語法可用於搜索鍵中的特定單詞或短語,或者也可用於精確匹配。在這裡,我們想要所有包含文本的鍵"title"

> KEYS *title*

注意:正如官方文檔中提到的,建議避免在非常大的數據庫上使用該命令,尤其是避免在生產環境中使用它。由於可能會返回系統中的每個密鑰,這可能會對性能產生巨大的負面影響。

8
最新評論
  • 康明斯6bt發動機
  • 甄嬛果郡王的愛情像盛開的夕顏一樣美麗,夕開朝落,終究見不得光