前言
Redis提供了豐富的命令(command)對資料庫和各種資料型別進行操作,這些command可以在Linux終端使用。在程式設計時,比如各類語言包,這些命令都有對應的方法。下面將Redis提供的命令做一總結。
鍵值相關命令
keys
返回滿足給定pattern的所有key
127.0.0.1:6379> keys *
1) "mylist4"
2) "myset7"
3) "name1"
4) "myset3"
5) "myset2"
6) "mylist2"
7) "mylist6"
8) "name"
9) "myhash"
10) "mylist7"
11) "key1"
12) "mylist5"
13) "mylist8"
14) "myzset2"
15) "myzset3"
16) "myzset"
17) "myset5"
18) "myset4"
19) "mylist3"
20) "myset"
21) "myset6"
22) "age"
23) "mylist"
24) "key2"
複製程式碼
用表示式*,代表取出所有的key。
127.0.0.1:6379> keys mylist*
1) "mylist4"
2) "mylist2"
3) "mylist6"
4) "mylist7"
5) "mylist5"
6) "mylist8"
7) "mylist3"
8) "mylist"
複製程式碼
用表示式mylist*,代表取出所有以mylist開頭的key。
exists
確認一個key是否存在
127.0.0.1:6379> exists HongWan
(integer) 0
127.0.0.1:6379> exists age
(integer) 1
複製程式碼
從結果來資料庫中不存在HongWan這個key,但是age這個key是存在的。
del
刪除一個key
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> exists age
(integer) 0
複製程式碼
expire
設定一個key的過期時間(單位:秒)
127.0.0.1:6379> exists addr
(integer) 1
127.0.0.1:6379> ttl addr
(integer) -1
127.0.0.1:6379> expire addr 10
(integer) 1
127.0.0.1:6379> ttl addr
(integer) 6
127.0.0.1:6379> ttl addr
(integer) 5
127.0.0.1:6379> ttl addr
(integer) 4
127.0.0.1:6379> ttl addr
(integer) -2
127.0.0.1:6379> exists addr
(integer) 0
複製程式碼
可以看到,未設定過期時間時,ttl值為-1,設定10s過期後,不斷地使用ttl獲取key的有效時長,當值為-2時,表示已過期並被刪除。
move
將當前資料庫中的key轉移到其它資料庫中
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set age 30
OK
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> move age 1
(integer) 1
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get age
"30"
複製程式碼
在本例中,我先顯式的選擇了資料庫0,然後在這個庫中設定一個key,接下來我們將這個key從資料庫0移到資料庫1,之後我們確認在資料庫0中無此key了, 但在資料庫1中存在這個key,說明我們轉移成功了 。
persist
移除給定key的過期時間
127.0.0.1:6379[1]> expire age 300
(integer) 1
127.0.0.1:6379[1]> ttl age
(integer) 296
127.0.0.1:6379[1]> persist age
(integer) 1
127.0.0.1:6379[1]> ttl age
(integer) -1
複製程式碼
在這個例子中,我們手動的將未到過期時間的key,成功設定為過期。
randomkey
隨機返回key空間的一個key
127.0.0.1:6379> randomkey
"mylist5"
127.0.0.1:6379> randomkey
"myzset2"
複製程式碼
通過結果可以看到取key的規則是隨機的。
rename
重新命名key
127.0.0.1:6379[1]> keys *
1) "age"
127.0.0.1:6379[1]> rename age age_new
OK
127.0.0.1:6379[1]> keys *
1) "age_new"
複製程式碼
age成功的被我們改名為age_new了。
type
返回值的型別
127.0.0.1:6379> type name
string
127.0.0.1:6379> type myset
set
127.0.0.1:6379> type myzset
zset
複製程式碼
伺服器相關命令
ping
測試連線是否存活
127.0.0.1:6379> ping
PONG
// 執行下面命令之前,我們停止redis伺服器
127.0.0.1:6379> ping
Could not connect to Redis at 127.0.0.1:6379: Connection refused
// 執行下面命令之前,我們啟動redis伺服器
not connected> ping
PONG
複製程式碼
echo
在命令列列印一些內容
127.0.0.1:6379> echo HongWan
"HongWan"
複製程式碼
select
選擇資料庫。Redis資料庫編號從0~15,我們可以選擇任意一個資料庫來進行資料的存取
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 16
(error) ERR invalid DB index
複製程式碼
quit
退出連線
127.0.0.1:6379> quit
root@test01:~#
複製程式碼
dbsize
返回當前資料庫中key的數目
127.0.0.1:6379> dbsize
(integer) 23
複製程式碼
結果說明此庫中有23個key。
info
獲取伺服器的資訊和統計
127.0.0.1:6379> info
# Server
redis_version:3.0.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:28b6715d3583bf8e
redis_mode:standalone
os:Linux 4.4.0-148-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:5.4.0
...
複製程式碼
此結果用於說明伺服器的基礎資訊,包括版本、啟動時間等。
monitor
實時轉儲收到的請求
先在終端1輸入monitor命令,將會進入等待狀態
127.0.0.1:6379> monitor
OK
複製程式碼
新建一個終端,輸入一些redis命令
127.0.0.1:6379> keys *
1) "myset3"
2) "myset2"
3) "mylist7"
4) "mylist4"
5) "key1"
6) "myset7"
7) "name1"
8) "mylist6"
9) "myzset"
10) "mylist2"
11) "myset"
12) "mylist"
13) "myhash"
14) "myset4"
15) "name"
16) "myset5"
17) "myzset3"
18) "mylist3"
19) "mylist5"
20) "myzset2"
21) "mylist8"
22) "key2"
23) "myset6"
127.0.0.1:6379> get addr
(nil)
複製程式碼
回到終端1中,我們將會看到列印出了剛才我們在終端2中敲入的redis命令
127.0.0.1:6379> monitor
OK
1558844434.297954 [0 127.0.0.1:34926] "keys" "*"
1558844444.673315 [0 127.0.0.1:34926] "get" "addr"
複製程式碼
config get
獲取伺服器配置資訊
127.0.0.1:6379> config get dir
1) "dir"
2) "/var/lib/redis"
複製程式碼
本例中我們獲取了dir這個引數配置的值,如果想獲取全部引數據的配置值也很簡單,只需 執行”config get *”即可將全部的值都顯示出來。
flushdb
刪除當前選擇資料庫中的所有key
127.0.0.1:6379> dbsize
(integer) 23
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> dbsize
(integer) 0
複製程式碼
在本例中我們將0號資料庫中的key都清除了。
flushall
刪除所有資料庫中的所有key
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 1
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
複製程式碼
在本例中我們先檢視了一個1號資料庫中有一個key,然後我切換到0號庫執行flushall命令,結果1號庫中的key也被清除了,說明此命令工作正常。