day4-3-redis常用命令
在此處輸入redis命令
字串操作命令
-
set key value 設定指定key的值(類似於put)
-
get key 獲取指定key的值
-
setex key seconds value 設定帶有過期時間的key
-
setnx key value 當key不存在時建立
SET key value
設定指定key的值
- 插入資料
SET name jack
GET key
獲取指定key的值
- 查詢資料
GET name
查詢不存在的key
GET abc
SETEX key seconds value
set expire, 設定指定key的值, 並將key的過期時間設定為second秒
- 過期自動被清理, 簡訊驗證碼
SETEX code 30 1234
可以使用TTL key查詢過期時間
TTL code
SETNX key value
set not exist, 只有在key不存在時設定key的值
- 分散式鎖
SETNX name handsomecat
SETNX name2 handsomecat
![fc7af9e1-d36b-4925-ad74-c76c1ec70840](file:///C:/Users/hikari39/Pictures/Typedown/fc7af9e1-d36b-4925-ad74-c76c1ec70840.png)
只有未存在的name2被賦值
![e5e21069-39cb-462d-bf80-a3f52b101797](file:///C:/Users/hikari39/Pictures/Typedown/e5e21069-39cb-462d-bf80-a3f52b101797.png)
雜湊操作命令
-
hset key field value 設定指定key field欄位的值
-
hget key field 獲取指定key field欄位的值
-
hdel key field 刪除指定key的field欄位
-
hkeys key 查詢當前key的所有field
-
hvals key 查詢當前key的所有value
Redis hash是一個string型別的field和value的對映表, hash特別適合用於儲存物件
HSET key field value
將雜湊表key中的欄位field的值設為value
key類似於物件的地址, name是物件的屬性, xiaoming是屬性的值
HSET 100 name xiaoming
HSET 100 age 20
類似的, 也有hsetEX和hsetNX的方法
HGET key field
獲取儲存在雜湊表中指定欄位field的值
HGET 100 name
HGET 100 age
hgetALL key, 可以獲取所有屬性值, 類似於物件的toString (?)
hgetALL 100
HDEL key field
刪除存在在雜湊表中的指定欄位filed
HDEL 100 name
HKEYS key
獲取雜湊表中的所有欄位
![6c5d5a24-6844-4ba5-a42b-b8a855049e2f](file:///C:/Users/hikari39/Pictures/Typedown/6c5d5a24-6844-4ba5-a42b-b8a855049e2f.png)
HVALS key
獲取雜湊表中所有的值
![41266ed7-062c-4eee-ad56-273d3bcc886b](file:///C:/Users/hikari39/Pictures/Typedown/41266ed7-062c-4eee-ad56-273d3bcc886b.png)
列表操作命令
Redis列表是簡單的字串列表, 按照插入順序排序
雙向棧, 支援lpush, lpop, rpush, rpop
LPUSH key value1 [value2]
left push, 將一個或多個值插入到列表頭部 (頭插法->入隊)[先進的元素在隊尾, 先進先出]
失敗
LPUSH 100 d c b a
![71e0df19-8e66-4931-baa6-10a9c9ef5b8a](file:///C:/Users/hikari39/Pictures/Typedown/71e0df19-8e66-4931-baa6-10a9c9ef5b8a.png)
成功, 並返回了操作記錄數
LPUSH mylist d c b a
![48eca124-a4c3-4b23-aa8b-bf70122b6214](file:///C:/Users/hikari39/Pictures/Typedown/48eca124-a4c3-4b23-aa8b-bf70122b6214.png)
LRANGE key start stop
left range 獲取列表指定範圍內的元素
從頭部到尾部查詢
LRANGE mylist 0 -1
![97272e12-3585-4ad7-8b8a-99261e0fcba3](file:///C:/Users/hikari39/Pictures/Typedown/97272e12-3585-4ad7-8b8a-99261e0fcba3.png)
RPOP key
right pop 移除並獲取列表最後一個元素(出隊)
刪除並返回了第一個進入的元素d
Rpop mylist
![a85b881a-6e5c-42ee-9ac7-3bd38741c820](file:///C:/Users/hikari39/Pictures/Typedown/a85b881a-6e5c-42ee-9ac7-3bd38741c820.png)
LLEN key
list length 獲取列表長度
LLEN mylist
![df85caf8-f51e-41a3-a039-129ae8455609](file:///C:/Users/hikari39/Pictures/Typedown/df85caf8-f51e-41a3-a039-129ae8455609.png)
集合操作命令
Redis set是string型別的無序集合, 集合成員是唯一的, 集合中不能出現重複資料
SADD key member1 [member2]
向集合中新增一個或多個成員
返回插入集合的成員數, 插入重複成員時不能成功
SADD myset a b c d
SADD myset a
![1bfd2c6d-16ff-4617-8a49-7ea26944bc8c](file:///C:/Users/hikari39/Pictures/Typedown/1bfd2c6d-16ff-4617-8a49-7ea26944bc8c.png)
元素是無序的
![1982bdbe-2f0e-48c8-993c-d6f34e43ccb3](file:///C:/Users/hikari39/Pictures/Typedown/1982bdbe-2f0e-48c8-993c-d6f34e43ccb3.png)
SMEMBERS key
返回集合中的所有成員
SMEMBERS myset
SCARD key
獲取集合的成員數
SINTER key1 [key2]
返回給定集合的交集
myset2
![db7acafb-6b11-455f-b211-7a0c19bd0cfd](file:///C:/Users/hikari39/Pictures/Typedown/db7acafb-6b11-455f-b211-7a0c19bd0cfd.png)
SINTER myset myset2
![ac8d316a-2bf8-49b6-bb04-3ee019e11f30](file:///C:/Users/hikari39/Pictures/Typedown/ac8d316a-2bf8-49b6-bb04-3ee019e11f30.png)
SUNION key1 [key2]
返回給定集合的並集
myset3
![b0116ba1-4da8-4913-ba65-a6f7fea83942](file:///C:/Users/hikari39/Pictures/Typedown/b0116ba1-4da8-4913-ba65-a6f7fea83942.png)
SUNION myset myset3
![9c1b7af2-00d0-4020-9bdd-fde59d35803a](file:///C:/Users/hikari39/Pictures/Typedown/9c1b7af2-00d0-4020-9bdd-fde59d35803a.png)
SREM key member1 [member2]
刪除集合中的一個或多個成員
SREM a b c d
![f1b348cf-cf1c-4920-a045-59b88b7112ec](file:///C:/Users/hikari39/Pictures/Typedown/f1b348cf-cf1c-4920-a045-59b88b7112ec.png)
![40c6ad07-b50b-4b95-b1c1-d50e474db0ef](file:///C:/Users/hikari39/Pictures/Typedown/40c6ad07-b50b-4b95-b1c1-d50e474db0ef.png)
有序集合操作命令
Redis有序集合是string型別元素的集合, 不允許有重複成員, 每個元素都會關聯一個double型別的分數
ZADD key score1 member1 [scores2 member2]
向有序集合新增一個或多個成員
ZADD zset1 10.0 a 10.5 b
![44e52a11-cf4b-4055-a629-6aac659f797d](file:///C:/Users/hikari39/Pictures/Typedown/44e52a11-cf4b-4055-a629-6aac659f797d.png)
ZADD zset1 1 c 2 d
![6b125a4f-03d8-4105-9031-3a8da7319d20](file:///C:/Users/hikari39/Pictures/Typedown/6b125a4f-03d8-4105-9031-3a8da7319d20.png)
ZRANGE key start stop [WITHSCORES]
透過索引區間返回有序集合中指定區間內的成員
ZRANGE zset1 0 -1
![9eaa91de-65f7-4aa6-b9b3-fe84bce7e6f4](file:///C:/Users/hikari39/Pictures/Typedown/9eaa91de-65f7-4aa6-b9b3-fe84bce7e6f4.png)
可能精度丟失, 預設升序排列
ZRANGE zset1 0 -1 WITHSCORES
![56930340-1a58-4cb0-a811-04aa624e0d9f](file:///C:/Users/hikari39/Pictures/Typedown/56930340-1a58-4cb0-a811-04aa624e0d9f.png)
ZINCRBY key increment member
有序集合中對指定成員的分數加上增量increment
ZINCRBY zset1 10 c
ZREM key member [member...]
移除有序集合中的一個或多個成員
ZREM zset1 a b c
通用命令
不分資料型別, 都可以使用的命令
KEYS pattern
查詢所有符合給定模式(pattern)的key
返回所有的key
keys *
![4992f103-bccf-4b25-a6c5-408e256e52f1](file:///C:/Users/hikari39/Pictures/Typedown/4992f103-bccf-4b25-a6c5-408e256e52f1.png)
返回以2結尾的key
keys *2
![26838935-8090-4317-8701-4e5aed896faf](file:///C:/Users/hikari39/Pictures/Typedown/26838935-8090-4317-8701-4e5aed896faf.png)
返回以z開頭的key
keys z*
![6ed56c1e-637d-4b57-8c14-ca9fd4f208f7](file:///C:/Users/hikari39/Pictures/Typedown/6ed56c1e-637d-4b57-8c14-ca9fd4f208f7.png)
EXISTS key
檢查key是否存在
查詢存在的key100和不存在的key10000
EXISTS 100
EXISTS 10000
TYPE key
返回key所儲存的值的型別
TYPE 100
TYPE zset1
DEL key
在key存在時刪除key
DEL mylist
可以一次刪除多個
DEL myset1 myset2 myset3