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>