Redis學習記錄筆記1

一、全局命令
1.查看redis中所有的鍵
語法:keys *
使用redis的測試客戶端連接redis,這裏使用單實例來做實驗

[root@localhost ~]# redis-cli      #這裏省略了 -h 和 -p參數,默認連接到127.0.0.1:6379
127.0.0.1:6379> 
#127.0.0.1:6379> keys *
(empty list or set)            #新部署的redis沒有鍵,提示空列表或集合

向redis中插入3對鍵值對:

127.0.0.1:6379> set name jingjing
OK
127.0.0.1:6379> set age 24
OK
127.0.0.1:6379> set country china
OK

再次使用keys *命令來查詢redis中存在的鍵:

127.0.0.1:6379> keys *
1) "country"
2) "age"
3) "name"

2.查詢鍵的總數
語法:dbsize
插入一個列表類型的鍵值對,其值是由多個元素組成:

127.0.0.1:6379> rpush mylist a b c d e f g
(integer) 7

然後再使用dbsize查詢:

127.0.0.1:6379> dbsize
(integer) 4           #總共有4個鍵,如下所示的四個
127.0.0.1:6379> keys *
1) "country"
2) "mylist"
3) "age"
4) "name"

Notes:dbsize在計算總的鍵數時不會遍歷所有的鍵,而是直接獲取redis內置的鍵總數變量,所以其時間複雜度是O(1)。而用keys *命令統計鍵時會遍歷所有的鍵,所以他的時間複雜度與鍵的數量有關,即爲O(n),n爲鍵的數量,可想而知,當存在大量的鍵時會佔用很多資源,所以在生產環境禁止使用。

3.檢查鍵是否存在
語法:exists key_name
如果鍵存在則返回1,若不存在則返回0:

127.0.0.1:6379> exists name
(integer) 1                #存在,返回1
127.0.0.1:6379> exists redis 
(integer) 0                #不存在,返回0

4.刪除鍵
語法:del key_name [key_name ...]

del是一個通用的命令,無論鍵的值是何種數據結構類型,都可將其刪除,如把字符串類型的鍵name和列表類型的鍵mylist分別刪除:

127.0.0.1:6379> del name
(integer) 1              #刪除成功,返回刪除的鍵的個數
127.0.0.1:6379> del mylist
(integer) 1              #刪除成功,返回刪除的鍵的個數
127.0.0.1:6379> exists name
(integer) 0              #再次查詢,返回0,表示不存在
127.0.0.1:6379> exists mylist
(integer) 0

如果試圖刪除一個不存在的鍵,會返回0:

127.0.0.1:6379> del name
(integer) 0             #因爲剛纔已經把鍵name刪除了,所以返回0

而且del命令還支持批量刪除:

127.0.0.1:6379> del country age
(integer) 2            #成功刪除2個鍵

5.爲鍵設置過期時間
語法:expire key_name seconds
redis支持對鍵設置過期時間,就像保質期一樣,當超過了過期時間,則會自動將鍵刪除,創建一個鍵name併爲其設置過期時間爲5秒:

127.0.0.1:6379> set name jingjing
OK
127.0.0.1:6379> expire name 5
(integer) 1               #設置過期時間爲5秒
127.0.0.1:6379> get name
(nil)                     #因爲過期後被刪除,所以查詢時返回nil

那有了鍵過期時間,就像我們喫東西前總要看一下還有多久過期,該如何查詢鍵還有多久過期,答案是使用ttl(time to live)命令就會返回鍵的剩餘過期時間,它有3種返回值:

  • 大於等於0的整數:鍵剩餘過期時間
  • -1:鍵沒有設置過期時間
  • -2:鍵不存在

語法:ttl key_name

127.0.0.1:6379> ttl name
(integer) -2           #鍵不存在
127.0.0.1:6379> set name jingjing
OK                     #設置鍵name
127.0.0.1:6379> expire name 20
(integer) 1            #設置鍵name的過期時間爲20秒
127.0.0.1:6379> ttl name
(integer) 12           #鍵過期時間還有12秒

6.查詢鍵的數據結構類型
語法:type key_name
例如鍵name的類型爲字符串,則返回string。鍵mylist是列表類型,則返回list:

127.0.0.1:6379> type name
string
127.0.0.1:6379> type mylist
list
127.0.0.1:6379> type age
none                    #如果鍵不存在,則返回none
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章