Redis 索引值資料類型及基本操作

來源:互聯網
上載者:User

標籤:

到目前為止,Redis 支援的索引值資料類型如下:

字串(String)

雜湊(Map)

列表(list)

集合(sets)

有序集合(sorted sets)

 

1. String 字串類型

string是redis最基本的類型,一個key對應一個value。

string類型是二進位安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的對象 。

string類型是Redis最基本的資料類型,一個鍵最大能儲存512MB。

String 命令:

賦值與取值 set key value / get key

>set name zhangzhi

ok

>get name

"zhangzhi"

當字串值為整數時,incr命令可遞增索引值
>set a 1

ok
>incr a

(integer) 2 

鍵不存在時,預設索引值為0
>incr b

(integer) 1

Incrby 和incr類似,但是可指定一次增加的值
>incrby c 10

(integer) 10
decr 和decrby 減少整數,incrbyfloat增加指定的浮點數,append向尾部追加值,如果鍵不存在則值為指定value
>set d hello

ok
>append d world

(integer) 10 # append 命令返還字串長度 “helloworld” 長度為10

strlen key 擷取字串長度
>strlen d

(integer) 10
同時擷取(mget)/設定(mget)多個索引值

>mset a valuea b valueb

>mget a b 

 

2. Hashes 雜湊

雜湊的索引值也是一種字典結構,其儲存了欄位和欄位值的映射,特別社和儲存物件。但欄位值只能是字串,散列類型不能嵌套其他的資料類型。

例子:

>hset user:1 name zhang    #賦值

>hget user:1 name                #取值

>hmset user:1 name zhangzhi age 29 address beijng #賦多值

>hmget user:1 name age #根據keys擷取多個值

>hgetall user:1  #擷取全部值

>hexists user:1 address #判斷欄位是否存在

>hsetnx user:1 address Beijing # 當欄位不存在時賦值

>hdel user:1 age  #刪除欄位

>hincrby user:1 age 1 # 增加數字,類似incrby ,散列沒有incr

>hkeys user:1 #擷取欄位名

>hvals user:1  #擷取欄位值

>hlen user:1 # 擷取欄位數量

 

3. 列表(Lists)
Redis列表是簡單的字串列表,按照插入順序排序。 你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
LPUSH命令插入一個新元素到列表頭部,而RPUSH命令 插入一個新元素到列表的尾部。當 對一個空key執行其中某個命令時,將會建立一個新表。列表最多可儲存 2的32次方 – 1個 元素 (4294967295, 每個列表可儲存40多億)。
例子:
>lpush list:1 a #建立列表list:1 並插入a

>rpush list:1 b #右邊插入b

>lrange list:1 0 10 # 擷取list:1 索引從0到10的元

>lpop list:1 #左邊彈出元素

>rpop list:1 #右邊彈出元素

>llen list:1 # 列表中元素的個數

>lrem list:1 2 a #刪除列表中指定的值 2為數量

>linde list:1 0 # 獲得指定索引的元素值

>lset list:1 0 2 #設定指定索引的元素值

>ltrim list1 2 4 #刪除指定索引範圍之外的所有元素

>linsert list1 before 4 99      #Linsert 命令用於在列表的元素前或者後插入元素。 當指定元素不存在於列表中時,不執行任何操作。 當列表不存在時,被視為空白列表,不執行任何操作。 如果 key 不是清單類型,返回一個錯誤。
>rpoplpush list1 list2           #rpoplpush 命令用於移除列表的最後一個元素,並將該元素添加到另一個列表並返回。

 

4. Set(集合)

Set是string類型的無序集合。集合是通過雜湊表實現的,所以添加,刪除,尋找的複雜度都是O(1)。
例子:
>sadd set:1 1 2 #已經存在集合中的元素忽略

>srem set:1 2 3

>smembers set:1

>sismember set:1 4 #判斷元素是否在集合中

>sdiff set:1 set:2 #集合間差集

>sinter set:1 set:2 # 集合交集

>sunion set:1 set:2 # 集合并集

 

5. 有序集合(Sorted sets)

Redis有序集合和Redis集合類似,它們的差別是,每個有序集合 的成員都關聯著一個評分,這個評分用於把有序集 合中的成員按最低分到最高分排列。
例子:
>zadd zset:1 0 redis

>zadd zset:1 1 monogdb

>zadd zset:1 2 mysql

>zrangebyscore zset:1 0 1000

>zscore zset:1 mysql #擷取元素分數

>zrange zset:1 0 -1 withscores

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.