天天看點

Redis日常指令總結key配置資料庫服務狀态原生監控總結

key

  • keys

    查找所有符合給定模式 pattern 的 key,支援glob風格比對

    ? 比對一個字元

    * 比對任意個(包括0個)字元

    [] 比對括号間的任一個字元,可以使用 “-” 符号表示一個範圍,如 a[b-d] 可以比對 “ab”,”ac”,”ad”

    \x 比對字元x,用于轉義符号,如果要比對 “?” 就需要使用 \?

    例:

    redis> MSET one 1 two 2 three 3 four 4  # 一次設定 4 個 key
    OK
    
    redis> KEYS *o*
    1) "four"
    2) "two"
    3) "one"
    
    redis> KEYS t??
    1) "two"
    
    redis> KEYS t[w]*
    1) "two"
    
    redis> KEYS *  # 比對資料庫内所有 key
    1) "four"
    2) "three"
    3) "two"
    4) "one"     
               
  • exists

    判斷某個key是否存在

    指令格式:exists key

    例:

    127.0.0.1:6379> EXISTS key1
    (integer) 0
               
  • type

    檢視key的資料類型

    指令格式:type key

    例:

    127.0.0.1:6379> set str "hello"
    OK
    127.0.0.1:6379> type str
    string
               
  • rename

    為key重命名

    指令格式:rename key newkey

    例:

    127.0.0.1:6379> set str "hello"
    OK
    127.0.0.1:6379> RENAME str str_new
    OK
    127.0.0.1:6379> get str_new
    "hello"
               
  • randomkey

    随機傳回一個key

    指令格式:randomkey

    例:

    127.0.0.1:6379> RANDOMKEY
    "c"
               
  • del

    删除key

    指令格式:del key

    例:

    127.0.0.1:6379> del c 
    (integer) 1
               

配置

  • config get

    查詢配置

    指令格式:config get parameter (parameter指配置名)

    例:

    127.0.0.1:6379> CONFIG GET *  #擷取所有配置
     1) "dbfilename"
     2) "dump.rdb"
     3) "requirepass"
     4) ""
     5) "masterauth"
     6) ""
     7) "cluster-announce-ip"
     8) ""
     9) "unixsocket"
    10) ""
               
  • config set

    修改配置

    指令格式:config set parameter value (parameter指配置名,value指新值)

    例:

    127.0.0.1:6379> CONFIG get masterauth 
    1) "masterauth"
    2) ""
    127.0.0.1:6379> CONFIG set masterauth  12345
    OK
    127.0.0.1:6379> CONFIG get masterauth 
    1) "masterauth"
    2) "12345"
               

資料庫

redis預設有0到15一共16個資料庫,每個資料庫擁有獨立的key獨立的命名空間。

  • dbsize

    檢視資料庫key數量

    指令格式:dbsize

    例:

    127.0.0.1:6379> DBSIZE                               
    (integer) 4 
               
  • select

    切換資料庫

    指令格式:select index (index為資料庫号)

    例:

    127.0.0.1:6379> SELECT 1
    OK
    127.0.0.1:6379[1]>
               
  • flushall

    清空所有資料庫

    指令格式:flushall

    例:

    127.0.0.1:6379> FLUSHALL
    OK
               
  • flushdb

    清空目前資料庫

    指令格式:flushdb

    例:

    127.0.0.1:6379> FLUSHDB
    OK
               
  • move

    移動資料key到另一個資料庫

    指令格式:move key index (index為目标資料庫)

    例:

    127.0.0.1:6379> MOVE one 1
    (integer) 1
    127.0.0.1:6379> SELECT 1
    OK
    127.0.0.1:6379[1]> KEYS * 
    1) "one"
               

服務狀态

  • ping

    測試client與server的連通性,如連接配接正常會傳回pong

    指令格式:ping

    例:

    127.0.0.1:6379> ping  
    PONG
               
  • info

    檢視伺服器資訊,包括CPU,記憶體,複制,持久化等資訊。

    指令格式:info

    例:

    127.0.0.1:6379> INFO
    # Server
    redis_version:4.0.9
    redis_git_sha1:00000000
    
    # Clients
    connected_clients:1
    
    # Memory
    used_memory:848384
    used_memory_human:828.50K
    used_memory_rss:4759552
    used_memory_rss_human:4.54M
    
    # Persistence
    loading:0
    rdb_changes_since_last_save:5
    rdb_bgsave_in_progress:0
    
    # Stats
    total_connections_received:3
    total_commands_processed:23
    instantaneous_ops_per_sec:0
    total_net_input_bytes:1187
    total_net_output_bytes:31491
    
    # Replication
    role:master
    connected_slaves:0
    master_replid:201f27ab290b092d11da749fb7b50ef31c9bd13b
    
    # Server
    redis_version:4.0.9
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:c946d801634fe2f1
               
  • shutdown

    關閉redis

    指令格式:shuown

    例:

    127.0.0.1:6379> SHUTDOWN
    not connected> 
               

原生監控

為了友善定位故障,redis提供了原生監控指令。

  • 目前連結的用戶端數和連接配接數

    redis-cli –stat檢視目前連接配接的用戶端數,連接配接數等。

    ------- data ------ --------------------- load -------------------- - child -
    keys       mem      clients blocked requests            connections          
    4          829.79K  1       0       0 (+0)              1           
    4          829.79K  1       0       1 (+0)              1           
    4          829.79K  1       0       2 (+1)              1           
    4          829.79K  1       0       3 (+1)              1           
    4          829.79K  1       0       4 (+1)              1           
    4          829.79K  1       0       5 (+1)              1           
    4          829.79K  1       0       6 (+1)              1           
    4          829.79K  1       0       7 (+1)              1           
    4          829.79K  1       0       8 (+1)              1           
    4          829.79K  1       0       9 (+1)              1           
    4          829.79K  1       0       10 (+1)             1
               
  • 記憶體最大的鍵值和平均的鍵值資料

    redis-cli –bigkeys 檢視目前占用記憶體最大的鍵值和平均的鍵值資料,也可以通過指定-i參數定時檢視目前的視圖情況。

    # Scanning the entire keyspace to find biggest keys as well as
    # average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
    # per 100 SCAN commands (not usually needed).
    
    [00.00%] Biggest string found so far 'b' with 1 bytes
    [00.00%] Biggest string found so far 'str' with 5 bytes
    
    -------- summary -------
    
    Sampled 4 keys in the keyspace!
    Total key length in bytes is 6 (avg len 1.50)
    
    Biggest string found 'str' has 5 bytes
    
    4 strings with 8 bytes (100.00% of keys, avg size 2.00)
    0 lists with 0 items (00.00% of keys, avg size 0.00)
    0 sets with 0 members (00.00% of keys, avg size 0.00)
    0 hashs with 0 fields (00.00% of keys, avg size 0.00)
    0 zsets with 0 members (00.00% of keys, avg size 0.00)
    0 streams with 0 entries (00.00% of keys, avg size 0.00)
               
  • 檢視目前的鍵值情況

    redis-cli –scan提供和keys *相似的功能,檢視目前的鍵值情況。

    [email protected]:/home/chenli# redis-cli --scan
    b
    a
    d
    str
               
  • 原生的Monitor監控

    redis-cli monitor列印出所有sever接收到的指令以及其對應的用戶端位址。

    [email protected]:/home/chenli# redis-cli monitor           │connected_slaves:0
    OK                                                    │master_replid:8bd6c5d16383bc44ee54b05e50f8196de9711d3
    1530380321.325409 [0 127.0.0.1:44484] "ping"          │c
    1530380326.702314 [0 127.0.0.1:44484] "info"
               

總結

本文簡單的總結了日常工作可能經常使用的指令,當然随着redis版本的疊代,部分指令可能會有變化。面對不同的版本時可以通過多檢視官方文檔或者使用help指令以及自動補全等來幫助我們。