Redis的資料結構

來源:互聯網
上載者:User

標籤:圖片   set   分享   判斷   cond   結構   3.3   資料結構   ted   

  Redis的資料結構:
  • redis是key-value的資料結構,每條資料都是一個索引值對
  • 鍵的類型是字串
  • 注意:鍵不可以重複
  Redis的值分為五種:
  1. 字串string
  2. 雜湊hash
  3. 列表list
  4. 集合set
  5. 有序集合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 鍵命令
  • 尋找鍵 參數支援Regex
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類型
  • 列表的元素屬性為string
  • 按照插入順序排序
  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的資料結構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.