Redis入門(三):Redis keys 命令和 Redis 字串命令
阿新 • • 發佈:2019-02-01
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>