1. 程式人生 > >Redis入門(三):Redis keys 命令和 Redis 字串命令

Redis入門(三):Redis keys 命令和 Redis 字串命令

Redis keys 命令

序號 命令 描述
1 DEL key 該命令用於在 key 存在時刪除 key,返回被刪除 key 的數量
2 DUMP key 序列化給定 key ,並返回被序列化的值
3 EXISTS key 檢查給定 key 是否存在,若 key 存在返回 1 ,否則返回 0
4 EXPIRE key seconds 為給定 key 設定過期時間,設定成功返回 1
5 EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 類似,都用於為 key 設定過期時間。 不同在於 EXPIREAT 命令接受的時間引數是 UNIX 時間戳(unix timestamp),設定成功返回 1
6 PEXPIRE key milliseconds 設定 key 的過期時間以毫秒計,設定成功,返回 1,key 不存在或設定失敗,返回 0
7 PEXPIREAT key milliseconds-timestamp 設定 key 過期時間的時間戳(unix timestamp) 以毫秒計, 設定成功返回 1
8 KEYS pattern 查詢所有符合給定模式( pattern)的 key,返回符合給定模式的 key 列表 (Array)
9 MOVE key db 將當前資料庫的 key 移動到給定的資料庫 db 當中,移動成功返回 1 ,失敗則返回 0
10 PERSIST key 移除 key 的過期時間,key 將持久保持,當過期時間移除成功時,返回 1 。 如果 key 不存在或 key 沒有設定過期時間,返回 0
11 PTTL key 以毫秒為單位返回 key 的剩餘的過期時間,當 key 不存在時,返回 -2 。 當 key 存在但沒有設定剩餘生存時間時,返回 -1 。 否則,以毫秒為單位,返回 key 的剩餘生存時間
12 TTL key 以秒為單位,返回給定 key 的剩餘生存時間(TTL, time to live),當 key 不存在時,返回 -2 。 當 key 存在但沒有設定剩餘生存時間時,返回 -1 。 否則,以秒為單位,返回 key 的剩餘生存時間
13 RANDOMKEY 從當前資料庫中隨機返回一個 key,當資料庫不為空時,返回一個 key 。 當資料庫為空時,返回 nil (windows 系統返回 null)
14 RENAME key newkey 修改 key 的名稱,改名成功時提示 OK ,失敗時候返回一個錯誤。當 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在時,返回一個錯誤。 當 NEW_KEY_NAME 已經存在時, RENAME 命令將覆蓋舊值
15 RENAMENX key newkey 僅當 newkey 不存在時,將 key 改名為 newkey,修改成功時,返回 1 。 如果 NEW_KEY_NAME 已經存在,返回 0
16 TYPE key 返回 key 所儲存的值的型別

Redis 字串命令

  • SET key value 設定指定 key 的值
  • GET key 獲取指定 key 的值
  • GETRANGE key start end 返回 key 中字串值的子字元
  • GETSET key value 將給定 key 的值設為 value ,並返回 key 的舊值(old value)
    shell
    127.0.0.1:6379> keys *
    (empty list or set)
    127.0.0.1:6379> set key001 001
    OK
    127.0.0.1:6379> get key001
    "001"
    127.0.0.1:6379> getrange key001 0 1
    "00"
    127.0.0.1:6379> getset key001 002
    "001"
    127.0.0.1:6379> get key001
    "002"
  • SETBIT key offset value 對 key 所儲存的字串值,設定或清除指定偏移量上的位(bit)
  • GETBIT key offset 對 key 所儲存的字串值,獲取指定偏移量上的位(bit)
    shell
    127.0.0.1:6379> keys *
    1) "key001"
    127.0.0.1:6379> setbit key001 3 1
    (integer) 1
    127.0.0.1:6379> getbit key001 3
    (integer) 1
    127.0.0.1:6379> getbit key001 7
    (integer) 0
    127.0.0.1:6379> getbit key002 3
    (integer) 0
  • MSET key value [key value …] 同時設定一個或多個 key-value 對
  • MSETNX key value [key value …] 同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在
  • MGET key1 [key2..] 獲取所有(一個或多個)給定 key 的值
    shell
    127.0.0.1:6379> keys *
    (empty list or set)
    127.0.0.1:6379> mset key001 001 key002 002
    OK
    127.0.0.1:6379> keys *
    1) "key001"
    2) "key002"
    127.0.0.1:6379> mget key001 key002
    1) "001"
    2) "002"
    127.0.0.1:6379> msetnx key002 003 key004 004
    (integer) 0
    127.0.0.1:6379> keys *
    1) "key001"
    2) "key002"
    127.0.0.1:6379> msetnx key003 003 key004 004
    (integer) 1
    127.0.0.1:6379> keys *
    1) "key004"
    2) "key003"
    3) "key001"
    4) "key002"
  • SETNX key value 只有在 key 不存在時設定 key 的值
  • SETEX key seconds value 將值 value 關聯到 key ,並將 key 的過期時間設為 seconds (以秒為單位)
  • SETRANGE key offset value 用 value 引數覆寫給定 key 所儲存的字串值,從偏移量 offset 開始
  • STRLEN key 返回 key 所儲存的字串值的長度
  • PSETEX key milliseconds value 這個命令和 SETEX 命令相似,但它以毫秒為單位設定 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位
    shell
    redis-S:6379> keys *
    (empty list or set)
    redis-S:6379> set key001 001
    OK
    redis-S:6379> keys *
    1) "key001"
    redis-S:6379> setnx key001 002
    (integer) 0
    redis-S:6379> get key001
    "001"
    redis-S:6379> setnx key002 002
    (integer) 1
    redis-S:6379> keys *
    1) "key001"
    2) "key002"
    redis-S:6379> setex key001 60 001A
    OK
    redis-S:6379> ttl key001
    (integer) 54
    redis-S:6379> get key001
    "001A"
    redis-S:6379> strlen key001
    (integer) 4
    redis-S:6379> psetex key002 100000 002A
    OK
    redis-S:6379> ttl key002
    (integer) 89
    redis-S:6379> get key002
    "002A"
    redis-S:6379>
  • INCR key 將 key 中儲存的數字值增一
  • INCRBY key increment 將 key 所儲存的值加上給定的增量值(increment)
  • INCRBYFLOAT key increment 將 key 所儲存的值加上給定的浮點增量值(increment)
  • DECR key 將 key 中儲存的數字值減一
  • DECRBY key decrement key 所儲存的值減去給定的減量值(decrement)
    shel
    redis-S:6379> keys *
    (empty list or set)
    redis-S:6379> set key001 1
    OK
    redis-S:6379> get key001
    "1"
    redis-S:6379> incr key001
    (integer) 2
    redis-S:6379> incrby key001 3
    (integer) 5
    redis-S:6379> incrbyfloat key001 0.9
    "5.9"
    redis-S:6379> get key002
    "1"
    redis-S:6379> decr key002
    (integer) 0
    redis-S:6379> decrby key002 2
    (integer) -2
    redis-S:6379>
  • APPEND key value 如果 key 已經存在並且是一個字串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾
    shell
    redis-S:6379> keys *
    1) "key001"
    2) "key002"
    redis-S:6379> get key001
    "5.9"
    redis-S:6379> append key001 -xxx
    (integer) 7
    redis-S:6379> get key001
    "5.9-xxx"
    redis-S:6379> append key003 new-value
    (integer) 9
    redis-S:6379> keys *
    1) "key003"
    2) "key001"
    3) "key002"
    redis-S:6379> get key003
    "new-value"
    redis-S:6379>

Redis hash 命令

reference