Redis支持多種不同的數據結構,包括五種基本數據結構和幾種更復雜的數據,可以滿足不同的應用場景。
五種基本數據結構
復數數據結構
不同數據結構的相似性
從上面的介紹我們可以看出,支持的數據結構是不壹樣的,但實際上Redis的每個數據結構都是由壹個鍵和壹個值組成的,可以抽象為:
Redis數據結構組成
所有數據結構的鍵值都是任意合法的字符串,不同數據結構的區別在於value存儲的值不同。
例如,最簡單的字符串數據結構的值為String,因此String可以表示為:
而hash數據結構,它的值是壹個Hash列表,所以Hash可以表示為:
這裏列出字符串和Hash來解釋,後面的文章會講到更多數據結構的內部結構和詳細操作。
Redis官網將Redis的命令按照功能分為15主題組,其中Kyes主題的命令是所有數據結構共有的。所以在理解其他數據結構命令之前,壹定要好好學習。
鍵
Keys命令用於列出Redis中的所有鍵。該命令的時間復雜度為O(N),N隨Redis中的密鑰數量增加而增加,所以Redis中的密鑰數量很大,keys命令的執行時間會很長。但是由於Redis是單線程的,壹個命令耗時太長,會導致後續所有請求都得不到響應。因此,不要在生產服務器上使用keys命令。
例子
存在
exists命令用於判斷是否存在壹個或多個鍵。判斷多個鍵時,鍵之間用空格隔開,exists的返回值是整數,表示當前存在多少個鍵。
例子
倒三角形
Del命令用於刪除壹個或多個鍵,鍵之間用空格隔開,它的返回值是壹個整數,表示已經成功刪除了多少個現有鍵。所以,如果只刪除了壹個鍵,可以從返回值判斷是否成功,如果刪除了多個鍵,只能得到刪除成功的次數。
例子
過期,pexpire
Expire設置密鑰過期的秒數,pexpire設置密鑰過期的毫秒數,如果成功則返回1,如果失敗則返回0。
例子
ttl,pttl
Ttl和pttl命令用於獲取key的過期時間,返回值為整數,代表幾種情況:
示例(類似於pttl的ttl演示)
expireat,pexpireat
將密鑰設置為在某個時間戳到期。Expire參數的時間戳以秒為單位表示,而pexpireat以毫秒為單位表示,這與Expire和pexpire的函數類似。返回1表示成功,0表示失敗。
例子
堅持
刪除密鑰的過期時間,並將密鑰設置為永久有效。當密鑰有過期時間時,使用persist命令刪除它並返回1。如果密鑰不存在或永久有效,則返回0。
例子
類型
確定數據結構key是什麽類型,返回值是string、list、set、hash和zset,分別代表我們前面介紹的Redis的五種基本數據結構。
例子
以上是Redis中最常用的通用命令。雖然簡單,但是要掌握它的用法和註意事項。其實對於普通開發者來說,大部分時候只是用這些基本的通用命令來操作Redis。