- 如何在ubuntu18.04上安裝和保護redis
- 如何連接到Redis資料庫
- 如何管理Redis資料庫和Keys
- 如何在Redis中管理副本和客戶端
- 如何在Redis中管理字串
- 如何在Redis中管理list
- 如何在Redis中管理Hashes
- 如何在Redis中管理Sets
- 如何在Redis中管理Sorted Sets
- 如何在Redis中運行事務
- 如何使Redis中的Key失效
- 如何解決Redis中的問題
- 如何從命令列更改Redis的配置
- Redis資料型別簡介
介紹
Redis是一個開源的記憶體中鍵值資料存盤,在Redis中,串列是按插入順序排序的字串的集合,類似于鏈接串列,本教程介紹了如何在Redis串列中創建和使用元素,
如何使用本指南
本指南以備有完整示例的備忘單形式撰寫,我們鼓勵您跳至與您要完成的任務相關的任何部分,
本指南中顯示的命令已在運行Redis版本4.0.9的Ubuntu 18.04服務器上進行了測驗,要設定類似的環境,您可以按照我們的指南如何在Ubuntu 18.04上安裝和保護Redis的步驟1進行操作,我們將通過使用Redis命令列界面運行它們來演示這些命令的行為,請注意,如果您使用其他Redis界面(例如Redli),則某些命令的確切輸出可能會有所不同,redis-cli
另外,您可以提供一個托管的Redis資料庫實體來測驗這些命令,但是請注意,根據資料庫提供者所允許的控制級別,本指南中的某些命令可能無法按所述方式作業,要配置DigitalOcean托管資料庫,請遵循我們的托管資料庫產品檔案,然后,您必須 安裝Redli 或 設定TLS隧道才能通過TLS連接到托管資料庫,
Creating Lists
一個鍵只能容納一個串列,盡管任何串列都可以容納40億個元素,Redis從左到右讀取串列,您可以使用命令將新串列元素添加到串列的開頭(“左”端),lpush也可以使用尾部(“右”端)添加新元素rpush,您還可以使用lpush或rpush創建新串列:
lpush key value
這兩個命令都將輸出一個整數,以顯示串列中有多少個元素,為了說明,請運行以下命令以創建包含“我認為是我”的??格言的串列:
lpush key_philosophy1 "therefore"
lpush key_philosophy1 "think"
rpush key_philosophy1 "I"
lpush key_philosophy1 "I"
rpush key_philosophy1 "am"
最后一條命令的輸出將顯示為:
(integer) 5
請注意,您可以使用單個lpush或rpush陳述句添加多個串列元素:
rpush key_philosophy1 "-" "Rene" "Decartes"
該lpushx和rpushx命令也用于元素添加到串列中,但如果給定的名單已經存在只會作業,如果任何一個命令失敗,它將回傳(integer) 0:
rpushx key_philosophy2 "Happiness" "is" "the" "highest" "good" "–" "Aristotle"
(integer) 0
要更改串列中的現有元素,請運行lset命令,然后輸入鍵名,要更改的元素的索引和新值:
lset key_philosophy1 5 "sayeth"
如果嘗試將串列元素添加到不包含串列的現有鍵中,則會導致資料型別沖突并回傳錯誤,例如,以下set命令創建一個保存字串的鍵,因此以下嘗試向其中添加串列元素的嘗試lpush將失敗:
set key_philosophy3 "What is love?"
lpush key_philosophy3 "Baby don't hurt me"
(error) WRONGTYPE Operation against a key holding the wrong kind of value
無法將Redis密鑰從一種資料型別轉換為另一種資料型別,因此要變成key_philosophy3串列,您需要洗掉該密鑰并使用lpushor rpush命令重新開始,
從串列中檢索元素(Retrieving Elements from a List)
要檢索串列中的專案范圍,請使用lrange命令,后跟起始偏移量和終止偏移量,每個偏移量都是從零開始的索引,0表示代表串列中的第一個元素,1代表下一個,依此類推,
以下命令將從上一節創建的示例串列中回傳所有元素:
lrange key_philosophy1 0 7
1) "I"
2) "think"
3) "therefore"
4) "I"
5) "am"
6) "sayeth"
7) "Rene"
8) "Decartes"
傳遞給的偏移量lrange也可以為負數,在這種情況下使用時,-1代表串列中的最后一個元素,-2代表串列中的倒數第二個元素,依此類推,以下示例回傳保存在串列中的最后三個元素key_philosophy1:
lrange key_philosophy1 -3 -1
1) "I"
2) "am"
3) "sayeth"
要從串列中檢索單個元素,可以使用lindex命令,但是,此命令要求您提供元素的索引作為引數,與一樣lrange,索引是從零開始的,這意味著第一個元素在index 0,第二個元素在index 1,依此類推:
lindex key_philosophy1 4
"am"
要查找給定串列中有多少個元素,請使用以下llen命令,該命令是“ l ist len gth”的縮寫:
llen key_philosophy1
(integer) 8
如果存盤在給定鍵上的值不存在,llen將回傳錯誤,
從串列中洗掉元素
該lrem命令將洗掉與給定值匹配的已定義次數的第一個,要對此進行試驗,請創建以下串列:
rpush key_Bond "Never" "Say" "Never" "Again" "You" "Only" "Live" "Twice" "Live" "and" "Let" "Die" "Tomorrow" "Never" "Dies"
以下lrem示例將洗掉該值的第一次出現"Live":
lrem key_Bond 1 "Live"
此命令將輸出從串列中洗掉的元素數量:
(integer) 1
傳遞給lrem命令的數字也可以為負數,以下示例將洗掉該值的最后兩個出現"Never":
lrem key_Bond -2 "Never"
(integer) 2
該lpop命令從串列中洗掉并回傳第一個或“最左邊”的元素:
lpop key_Bond
"Never"
同樣,要從串列中洗掉并回傳最后或“最右邊”的元素,請使用rpop:
rpop key_Bond
"Dies"
Redis還包括rpoplpush命令,該命令從串列中洗掉最后一個元素并將其推到另一個串列的開頭:
rpoplpush key_Bond key_AfterToday
"Tomorrow"
如果傳遞給rpoplpush命令的源鍵和目標鍵相同,則它將實質上旋轉串列中的元素,
結論
本指南詳細介紹了可用于在Redis中創建和管理串列的許多命令,如果您想在本指南中概述其他相關的命令,引數或程序,請在下面的評論中提出疑問或提出建議,
有關Redis命令的更多資訊,請參閱關于如何管理Redis資料庫的系列教程,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/2458.html
標籤:NoSQL
