1. 程式人生 > 實用技巧 >redis學習-redis常用指令

redis學習-redis常用指令

前言

前面學習了redis的五種基本資料型別和每種資料型別常用的一些方法,今天來學習一下五種基本資料型別以外的常用命令。

  • keys

    keys pattern 用於顯示符合條件的額key,可以使用*萬用字元篩選。

    127.0.0.1:6379> keys *
    1) "zset1"
    2) "set1"
    3) "set2"
    4) "list1"
    5) "list2"
    127.0.0.1:6379> keys list*
    1) "list1"
    2) "list2"
    127.0.0.1:6379> keys zset1
    1) "zset1"
    
  • exists

    exists key [key ... ]用於判定key是否存在。

  • expire

    expire key seconds 用於設定key的過期時間。

  • ttl

    ttl key 用於檢視key的剩餘有效時間,未設定過期時間則返回-1,設定過期時間返回剩餘有效時間,已過期返回-2。

  • persist

    取消過期時間設定。

    // 判定key是否存在
    127.0.0.1:6379> exists set1
    (integer) 1
    // 設定過期時間為100
    127.0.0.1:6379> expire set1 100
    (integer) 1
    // 檢視過期時間
    127.0.0.1:6379> ttl set1
    (integer) 96
    // 檢視未設定過期時間的key,返回-1
    127.0.0.1:6379> ttl list1
    (integer) -1
    // 檢視剩餘過期時間,返回剩餘過期時間
    127.0.0.1:6379> ttl set1
    (integer) 32
    127.0.0.1:6379> ttl set1
    (integer) 4
    127.0.0.1:6379> ttl set1
    (integer) -2
    // 已過期返回 -2
    127.0.0.1:6379> ttl set1
    (integer) -2
    
  • select

    select index 用於切換資料庫,redis有0-15,共16個數據庫,預設資料庫為0。redis3.x版本引入叢集以前,為了維護資料的安全和備份資料的需要,劃分了16個數據庫,儲存在不同的伺服器(分片技術),用以確保資料安全。

  • move

    move key db用於將指定key移至指定資料庫。

    // 前面的預設資料存放在0號資料庫
    127.0.0.1:6379> select 0
    OK
    127.0.0.1:6379> keys *
    1) "zset1"
    2) "set2"
    3) "list1"
    4) "list2"
    // 切庫並檢視資料為空    
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys *
    (empty list or set)
    // 將資料庫0中的zset1移至資料庫1    
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> move zset1 1
    (integer) 1
    127.0.0.1:6379> keys zset1
    (empty list or set)
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys zset1
    1) "zset1"
    
  • randomkey

    隨機返回一個key(想不到有什麼用途?)。

    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> randomkey
    "list1"
    127.0.0.1:6379> randomkey
    "list1"
    127.0.0.1:6379> randomkey
    "list2"
    
  • rename

    rename key newkey 重新命名。

    127.0.0.1:6379> keys *
    1) "set2"
    2) "list1"
    3) "list2"
    127.0.0.1:6379> rename list1 list0
    OK
    127.0.0.1:6379> keys *
    1) "list0"
    2) "set2"
    3) "list2"
    
  • echo

    輸出列印。

  • dbsize

    獲取db中資料的個數。

  • info

    info section返回當前資料庫的資訊。

  • config get

    返回配置資訊。

  • flunshdb/flushall

    清空(當前)資料庫/清空所有庫。

    127.0.0.1:6379> echo 123
    "123"
        
    127.0.0.1:6379> dbsize
    (integer) 3
        
    127.0.0.1:6379> info
    # Server
    redis_version:5.0.5
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:84ff8fdea17c09ed
    redis_mode:standalone
     ... ... 
        
    127.0.0.1:6379> config get *
      1) "dbfilename"
      2) "dump.rdb"
      3) "requirepass"
      4) ""
      5) "masterauth"
      6) ""
      7) "cluster-announce-ip"
      8) ""
     
    127.0.0.1:6379> keys *
    1) "list0"
    2) "set2"
    3) "list2"
    127.0.0.1:6379> flushdb
    OK
    127.0.0.1:6379> keys *
    (empty list or set)
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys *
    1) "zset1"
    // 清空所有資料,info檢視keyspace可以看到所有資料庫均無資料
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> flushall
    127.0.0.1:6379> info
        ... ...
    # Keyspace