day4-3-redis常用命令

HIK4RU44發表於2024-05-14

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

fad70d9c-e919-44e1-bfce-6160f09812bc

可以使用TTL key查詢過期時間

TTL code
ec6fef05-6615-467b-84aa-d74881d9fe47

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特別適合用於儲存物件

2f2b0aa7-f193-4f6e-a950-ea4e015a5a18

HSET key field value

將雜湊表key中的欄位field的值設為value

key類似於物件的地址, name是物件的屬性, xiaoming是屬性的值

73e02a39-2f39-4bc5-801a-81886f1db999
HSET 100 name xiaoming
HSET 100 age 20
46563500-9628-48cf-ac9e-ba698d1cafeb 821310f9-8006-43d7-b3ca-74645251b126

類似的, 也有hsetEX和hsetNX的方法


HGET key field

獲取儲存在雜湊表中指定欄位field的值

HGET 100 name
HGET 100 age
11cf1df6-b589-4745-80d0-8fc13ae812ac

hgetALL key, 可以獲取所有屬性值, 類似於物件的toString (?)

hgetALL 100
647af4fd-15f8-43d2-8601-9722bb315326

HDEL key field

刪除存在在雜湊表中的指定欄位filed

HDEL 100 name
64c035aa-2347-4d2c-abba-daf52eca5670 c3a2fb42-a15f-4fa2-a98b-b15379393cb3

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

33cf7c51-9b0f-46e9-b4f8-387287e0cb40

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)

f3604aa6-f980-4888-96d3-ba62cf2d5a21

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)

e0f4592b-c982-4117-a3bd-27f5dedb462c

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型別的無序集合, 集合成員是唯一的, 集合中不能出現重複資料

a67f8abd-92ba-4a5f-958e-505e05fe4fe3

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
e28d8d46-2ba6-4dbc-9c55-2b3a30a2c81f

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型別的分數

69e76d65-b951-4920-bc67-5f5d21e5bf90

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
dfe98820-9205-4326-bc8f-cf50c92bddec

ZREM key member [member...]

移除有序集合中的一個或多個成員

ZREM zset1 a b c
80fd4448-fafa-448a-a7a8-c817bb9f8747

通用命令

不分資料型別, 都可以使用的命令

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
66cf0d2d-afd6-427d-ac94-0531a85d11a6

TYPE key

返回key所儲存的值的型別

TYPE 100
TYPE zset1
9e9c23a3-62bf-44bc-9c93-03bd59a813df

DEL key

在key存在時刪除key

DEL mylist

可以一次刪除多個

DEL myset1 myset2 myset3