標籤:圖片 set 分享 判斷 cond 結構 3.3 資料結構 ted
Redis的資料結構:
- redis是key-value的資料結構,每條資料都是一個索引值對
- 鍵的類型是字串
- 注意:鍵不可以重複
Redis的值分為五種:
- 字串string
- 雜湊hash
- 列表list
- 集合set
- 有序集合zset
1、 string類型
- 字串類型是Redis中最為基礎的資料存放區類型,它在redis中的二進位安全的,這便意味著該類型可以接收任意類型的資料,如JPEG映像資料或JSON對象描述資訊等。在Redis中字串類型的value最多可以容納的資料長度是512M
1.1 儲存
如果設定的鍵不存在則為添加,如果設定的鍵已經存在則為修改
例1:設定索引值
set key value
設定鍵為name值為java的資料
例2:設定鍵為aa值為aa到期時間為3秒的資料
setex aa 3 aa
例3:設定鍵位‘a1’值為‘python‘,設定鍵為‘a2‘值為‘java’設定鍵為‘a3‘,值為‘c‘
mset key1 value1 key2 value2 ....
append key value
例4:向鍵為a1中追加值‘hahaha‘
1.2 擷取 擷取:根據鍵擷取值,如果不存在此鍵,返回nil
get key
例5:擷取鍵‘a1’的值
根據多個鍵擷取多個值
mget key1 key2 ...
例6:擷取a1、a2、a3的值
2 鍵命令
keys pattern
例1:查看所有的鍵
例2:查看名稱中包含a的鍵
判斷鍵是否存在,如果存在返回1、不存在返回0
exists key1
例3:查看鍵 ‘a1’是否存在
查看鍵對應的value的類型
type key
例4:查看鍵a1的實值型別,為redis支援的五種類型中的一種
刪除鍵及對應的值
del key1 key2 ...
例5:刪除鍵a1、a2、a3
設定到期時間、以秒為單位 如果沒有指定到期時間,則一直存在,直到使用DEL將其刪除
expire key seconds
例6:設定鍵 ‘a1’ 的到期時間為3秒
expire ‘a1‘ 3
查看有效時間,以秒為單位
ttl key
例7:查看bb的有效時間
3、hash類型
- hash用於儲存物件,對象的結構為屬性、值、使用redis儲存物件資訊
- 值的類型為string
3.1 增加、修改 設定單個屬性
hset key field value
例1:設定鍵user的屬性name為jack
例2:設定鍵u2的屬性 name為tom、屬性age為11
hset u2 name tom age 11
3.2 擷取
擷取指定鍵所有的屬性
hkeys key
例3:擷取u2的所有屬性
擷取一個屬性的值
hget key field
例4:擷取鍵u2屬性‘name‘的值
擷取多個屬性的值
hget key field1 field2...
例5:擷取鍵u2屬性‘name‘、‘age’的值
擷取所有屬性的值
hvals key
例6:擷取鍵‘u2’所有屬性的值
3.3 刪除
- 刪除整個hash鍵及值、使用del命令
- 刪除屬性、屬性對應的值會被一起刪除
hdel key1 field1 field2
例7:刪除鍵‘u2‘的屬性‘age’
hdel u2 age
4、list類型
4.1 增加 在左側插入資料lpush(left )從 左側插入
lpush key value1 value2
例1:從鍵為‘a1‘的列表左側加入資料a、b、c
從右側插入資料
rpush key value1 value2 ...
例2:從鍵為‘a1‘的列表右側加入資料0、1
在指定元素的前或後插入新元素
linsert key before 或 after 現有元素 新元素
例3:在鍵為‘a1‘的列表中元素‘b’前加入‘3‘
4.2、擷取
- 返回列表裡指定範圍內的元素
- start、stop虛擬元素的下標索引
- 索引從左側開始,第一個元素為0
- 索引可以是負數,表示從尾部開始技術,如-1表示最後一個元素
lrange key start stop
例4:擷取鍵為‘a1’的列表所有值
lrange a1 0 -1
設定指定索引位置的元素
- 索引從左側開始,第一個元素為0
- 索引可以是負數、表示尾部開始計數,如-1表示最後一個元素
lset key index value
例5:修改鍵為‘a1‘的列表中下標為1的元素值為‘z’
4.3 刪除
- 刪除指定元素
- 將列表中前count次數顯的值為value的元素移除
- count >0:從頭往尾移除
- count<0:從尾往頭移除
- count=0:移除所有
lrem key count value
例6.1:向列表‘a‘中追加元素‘a‘、‘b‘、‘a‘、‘b‘、‘a‘、‘b‘,並從‘a‘;列表右側開始刪除兩個‘b‘
5 set類型
- 無序集合
- 元素為string類型
- 元素具有唯一性、不重複
- 說明:對於集合沒有修改操作
5.1 增加 添加元素
sadd key member1 member2
例1:向鍵‘a3’的集合中添加元素‘alex’、‘egon’、‘wusir’
5.2、擷取 返回所有的元素 例2:擷取鍵‘a3’集合中的所有元素
smember a3
5.3、刪除 刪除指定元素
srem key
例3:刪除鍵‘a3’的集合中元素‘wusir‘
6、ZSet
- sorted set,有序集合
- 元素為string類型
- 元素具有唯一性、不重複
- 每個元素都會關聯一個double類型的score,表示權重,通過權重將元素從小到大排序
- 說明:沒有修改操作
6.1 增加
zadd key score1 member1 score2 member2 ...
例1:向鍵‘a4’的集合添加元素‘jing’、‘eva’、‘jin’,分別設定權重為4、5、3、
zadd a4 4 jing 5 eva 6 jin
6.2 擷取
- 返回指定範圍的元素
- start、stop為元素的下標索引
- 索引可以從左側開始、第一個元素是0
- 索引可以是負數、表示從尾部開始計數。如-1表示最後一個元素
zrange key start stop
返回score值在min和max之間的元素
zrangebyscore key min max
例3:擷取鍵‘a4‘的集合中權值在4和6之間的成員
返回成員member的score值
zscore key member
例4:擷取鍵‘a4‘的集合中元素為eva的權重
6.3刪除 刪除指定元素
zrem key member1member2
例5:刪除集合‘a4‘中元素‘eva’ 刪除權重在指定範圍的元素
zremrangebyscore key min max
例6:刪除集合‘a4‘中權重在5、6之間的元素
Redis的資料結構