Redis資料型別和基本操作
Redis key(鍵)的型別只能為字串,value (值)的型別如下 5 種類型:
- string —— 字串
- hash —— 無序散列表
- list —— 列表
- set —— 無序集合
- zset —— 有序集合
## 2、操作命令
>**說明這裡的命令只是 Redis 命令的冰山一角,更多命令的詳細介紹可以參看這裡 [ Redis 中文網的命令中心 ]**( http://redis.cn/commands.html*)**,重要!!!*
### 2.1 string
對整個字串或者字串的其中一部分執行操作,對整數和浮點數執行自增或者自減操作。
- set key value
新增或修改(對已存在的鍵)單個字串
\
set name xiaoming \
- get key
獲取(查詢)鍵對應的字串值
\
get name \
- del key
刪除鍵和對應的值
\
del key \
- mset key value [key value ...]
新增或修改(已存在的鍵)多個字串
\
mset user1 xiaoming user2 xiaohong \
- mget key [key ...]
獲取(查詢)多個鍵對應的字串值
\
mget user1 user2 \
- incr key
對整數型的字串加 1
\
set age 21 incr age // 22 get age// 22 \
- decr key
對整數型的字串減 1
\
set age 22 decr age // 21 get age// 21 \
- append key value
追加值
\
set name aaa get name // aaa append name bbb get name // aaabbb \
### 2.2 hash
⽤於儲存物件,物件的結構為屬性、值,新增、獲取、移除單個鍵值對 獲取所有鍵值對 檢查某個鍵是否存在。
- hset key field value
設定單個屬性
\
hset user name xiaoming \
- hget key field
獲取單個屬性的值
\
hget user name // xiaoming \
- hmset key field1 value1 field2 value2 ...
設定多個屬性
\
hmset user name xiaoming age 21 \
- hmget key field1 field2 ...
獲取多個屬性的值
\
hmget user name age \
- hkeys key
獲取指定鍵所有的屬性
\
hkeys user \
- hvals key
獲取指定鍵所有屬性的值
\
hvals user \
- hdel key field1 [field2 ...]
刪除指定的屬性及屬性對應的值
\
hdel user name \
### 2.3 list
列表的元素型別為 string,按照插入順序排序,從兩端壓入或者彈出元素,讀取單個或者多個元素進行修剪,只保留一個範圍內的元素。
- lpush key value1 [value2 ...]
從左端插入資料
\
lpush nums1 0 1 2 \
- rpush key value1 [value2 ...]
從右端插入資料
\
rpush nums2 0 1 2 \
- lrange key start stop
獲取鍵對應列表指定範圍的元素,start 為開始索引(索引從左側開始,第一個元素下標為 0),stop 為結束索引(索引可以是負數,表示從右側開始)
\
lrange nums1 0 -1 // 2 1 0 lrange nums2 0 -1 // 0 1 2 \
- linsert key before|after pivot value
在 pivot 的前或後插入元素
\
linsert key nums1 before 2 3 lrange nums1 0 -1 // 3 2 1 0 \
- lset key index value
設定(修改)指定索引位置的元素值
\
lset nums2 1 11 lrange nums2 0 -1 // 0 11 2 \
- lrem key count value
刪除鍵對應列表前 count 次出現的值(count > 0 表示從頭往尾刪除,count < 0 表示從尾往頭刪除,count = 0 表示刪除所有)
\
lpush ab a b a a b a b b lrange ab 0 -1 // b b a b a a b a lrem ab 2 b // a b a a b a \
### 2.4 set
無序集合的元素為 string,元素具有唯一性,不重複,對集合沒有修改操作,新增、獲取、移除單個元素 檢查一個元素是否存在於集合中 計算交集、並集、差集 從集合裡面隨機獲取元素。
- sadd key member [member ...]
新增元素到無序集合
\
sadd set1 0 0 1 1 2 2 \
- smembers key
檢視無序集合中的元素成員
\
smembers set1 // 0 1 2 \
- scard key
檢視無序集合中的元素數量
\
scard set1 // 3 \
- srem key member [member ...]
刪除指定無序集合中的元素成員
\
srem set1 1 \
- sinter key [key ...]
計算交集
\
sadd set1 0 1 2 sadd set2 1 2 3 sinter set1 set2 // 1 2 \
- sinterstore destination key [key]
計算交集並將交集值儲存在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sinterstore set1_inter_set2 set1 set2 smembers set1_inter_set2 // 1 2 \
- sunion key [key ...]
計算並集
\
sunion set1 set2 // 0 1 2 3 \
- sunionstore destination key [key]
計算並集並將並集值儲存在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sunionstore set1_union_set2 set1 set2 smembers set1_union_set2 // 0 1 2 3 \
- sdiff key [key ...]
計算差集
\
sdiff set1 set2 // 0 sdiff set2 set1 // 3 \
- sdiffstore destination key [key]
計算差集並將差集值儲存在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sdiffstore set1_diff_set2 set1 set2 sdiffstore set2_diff_set1 set1 set2 smembers set1_diff_set2 // 0 smembers set2_diff_set1 // 3 \
### 2.5 zset
有序集合的元素為 string,元素具有唯一性,不重複,每個元素都會關聯一個 double 型別的 score 表示權重,通過權重來給元素排序,沒有修改操作,新增、獲取、刪除元素 根據分值範圍或者成員來獲取元素 計算一個鍵的排名。
- zadd key score member [score member …] 新增元素到有序集合
\
zadd rank 10 xiaoming 9 xiaohong 8 xiaoguang 7 xiaohei 6 xiaozhi 5 xiaozhang \
- zrange key start stop 檢視有序集合中所有元素(預設是升序排序)
\
zrange rank 0 -1 // xiaozhang xiaozhi xiaohei xiaoguang xiaohong xiaoming \
- zcard key
檢視有序集合中的元素數量
\
zcard rank // 6 \
- zrangebyscore min max 檢視有序集合中 score 在 min 和 max 之間的元素
\
zrangebyscore 6 8 // xiaozhi xiaohei xiaoguang \
- zscore key member 檢視有序集合中指定元素的 score 值
\
zscore rank xiaohei // 7 \
- zrem key member [member …] 刪除有序集合中指定元素及對應的 score 值
\
zrem rank xiaohei xiaozhang \
- zremrangebyscore key min max 刪除有序集合中指定返回 score 值的元素
\
zremrangebyscore rank 7 8 \
### 2.6 key 命令
查詢鍵的相關命令(對上面的型別都適用),引數支援正則表示式。
- keys pattern
根據規則查詢鍵
\
keys * // 查詢所有的鍵 keys a* // 查詢 a 開頭的鍵 \
- exists key [key ...]
判斷鍵是否存在,如果存在返回 1,不存在返回 0
\
exists name \
- type key
檢視鍵對應的 value 型別
\
type name \
- del key [key ...]
刪除鍵和鍵對應的值
\
del name \
- expire key seconds
設定鍵的過期時間,單位為秒
\
set name xiaoming get name // xiaoming expire name 1 get name // nil \
- ttl key
檢視剩下的有效時間,單位為秒
\
set name xiaoming get name // xiaoming expire name 100 ttl name // 98 ttl name // 97 有效時間逐漸減少 \
本文作者:Wizey
本文連結:http://wenshixin.gitee.io/blog/2019/02/02/Redis資料型別和基本操作/
版權宣告:本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。轉載請註明出處!
