Redis基礎操作:增刪改查與失效設定

Redis是一個Key-Value的數據庫,這篇文章將通過實際的Redis基礎命令來介紹一下如何進行相關操作。

環境準備

使用容器化方式準備Redis環境應該是最爲簡單的方式了, 本系列示例中使用Redis的6.0.4版本進行說明。

liumiaocn:~ liumiao$ docker run --rm --name=REDIS -d redis:6.0.4
9ac3dc04b2d09faf32b8576239b821b9041f43936341eb801cde18aa1aa0b855
liumiaocn:~ liumiao$ docker ps |grep REDIS
9ac3dc04b2d0        redis:6.0.4                    "docker-entrypoint.s…"   6 seconds ago       Up 5 seconds        6379/tcp                                       REDIS
liumiaocn:~ liumiao$

進入到啓動的名爲REDIS的容器之中,使用容器中提供的redis-cli進行連接,即可進行Redis命令的執行了。

liumiaocn:~ liumiao$ docker exec -it REDIS sh
# 
# which redis-cli
/usr/local/bin/redis-cli
# redis-cli
127.0.0.1:6379> 

命令:ping

使用ping命令確認一下是否能夠收到PONG的迴應,如果收到,說明正常

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

命令:keys

使用keys *可以獲得所有的key的信息,此時可以看到什麼信息都沒有

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

命令:set

使用set命令可以進行新增和修改,比如首先可以進行新增的驗證,添加兩個key-value對

127.0.0.1:6379> set version 0.1
OK
127.0.0.1:6379> set software redis
OK
127.0.0.1:6379>

此時使用keys *即可獲得所有的2個key的列表信息了

127.0.0.1:6379> keys *
1) "software"
2) "version"
127.0.0.1:6379>

對已存在的key進行set即爲更新操作

127.0.0.1:6379> set version 0.2
OK
127.0.0.1:6379> get version
"0.2"
127.0.0.1:6379>

命令:get

相較於set命令的增和改的操作,get命令用於查詢

127.0.0.1:6379> get version
"0.1"
127.0.0.1:6379>

如果是多條查詢的情況,則可以使用mget

127.0.0.1:6379> mget version software
1) "0.1"
2) "redis"
127.0.0.1:6379> 

注意:如果get所查詢的key實際並不存在或者已經失效的情況下,返回值會是nil

命令:del

del命令則是用於通過key來刪除相應的key-value對,如果指定key不存在的情況下,會返回0,執行示例日誌如下所示

127.0.0.1:6379> del version
(integer) 1
127.0.0.1:6379> get version
(nil)
127.0.0.1:6379> del version
(integer) 0
127.0.0.1:6379> 

另外del還可以指定多個key進行刪除,刪除對象列表中也可以包含已經被刪除的或者不存在的內容,比如

127.0.0.1:6379> del version software
(integer) 1
127.0.0.1:6379> 

命令:expire 與 ttl/pttl

命令expire可以設定key的過期時間,通過ttl或者pttl獲取key還剩餘的有效時長(ttl獲取秒單位,pttl爲毫秒單位),執行示例如下所示

127.0.0.1:6379> expire version 10
(integer) 0
127.0.0.1:6379> set version 0.3
OK
127.0.0.1:6379> expire version 10
(integer) 1
127.0.0.1:6379> ttl version
(integer) 4
127.0.0.1:6379> ttl version
(integer) 2
127.0.0.1:6379> ttl version
(integer) 1
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

說明:expire所指定的key如果不存在的話返回值中同樣不進行計數,通過ttl可以查詢指定的key在多少秒後會失效,需要注意的是失效之後ttl返回的結果爲-2,-2表示指定的key已經失效,等同於不存在的key,比如:在key *確認當前沒有任何key的情況下,確認ttl software的結果同樣是-2

127.0.0.1:6379> ttl software
(integer) -2
127.0.0.1:6379> 

另外,通過set命令也同樣可以設定過期時間,同時還可以指定單位爲毫秒,指定秒單位的時候使用ex,毫秒單位的時候爲px,返回毫秒的過期剩餘時間的時候可以使用pttl,執行示例如下所示:

127.0.0.1:6379> set version 0.4 ex 8
OK
127.0.0.1:6379> ttl version
(integer) 5
127.0.0.1:6379> pttl version
(integer) 2329
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章