redis--(1)redis的常用資料類型__redis

來源:互聯網
上載者:User

redis作為一個效能優越的索引值(key-value)型資料庫,支援多種資料結構。有strings–list–set–sorts set–hash幾種。有必要瞭解常用操作。 strings

Strings:字串是二進位安全的,這意味著一個一個redis的字串能包含任意類型的資料,比如:JPEG格式的圖片或者一個序列化的數組或對象。一個字串最多512M內容。

SET key value [EX #] [NX|XX]  //設定鍵-值。NX表示鍵不存在才設定值。如果存在則不設定。XX相反。EX後加到期時間。還有PX類型,毫秒。GETINCR   //加或減key中的數字,只能對整數操作。DECREXISTSETEX key seconds value

將值value關聯到key,並將 key 的存留時間設 為 seconds (以秒為單位)。如果 key 已經存在, SETEX 命令將覆寫舊值。
傳回值: 設定成功時返回 OK 。 當 seconds 參數不合法時,返回一個錯誤。

SETRANGE key offset value 

用 value 參數覆寫(overwrite)給定 key 所儲存的 字串值,從位移量 offset 開始。 不存在的 key 當作空白字串處理。
- 傳回值: 被 SETRANGE 修改之後,字串的長度。

MSET key value [key value ...]

同時設定一個或多個 key-value 對。 如果某個給定 key 已經存在,那麼 MSET 會用新 值覆蓋原來的舊值,如果這不是你所希望的效果, 請考慮使用 MSETNX 命令:它只會在所有給定 key 都不存在的情況下進行設定作業。
- 傳回值: 總是返回 OK (因為 MSET 不可能失敗)

GETRANGE key start end 

返回 key 中字串值的子字串,字串的截取範 圍由 start 和 end 兩個位移量決定(包括 start 和 end 在內)。 負數位移量表示從字串最後開始計數, -1 表示 最後一個字元, -2 表示倒數第二個,以此類推。
- 傳回值: 截取得出的子字串。

APPEND key value 

如果 key 已經存在並且是一個字串, APPEND 命令將 value 追加到 key 原來的值的末尾。 如果 key 不存在, APPEND 就簡單地將給定 key 設為 value ,就像執行 SET key value 一樣。
- 傳回值: 追加 value 之後, key 中字串的長度 lists

Lists:鍵指向一個容器。可以在左右進行添加字串,主要功能是push.pop.擷取一個範圍的所有值,等等。list可當成是lists或是棧。

LPUSH  //`LPUSH SS  MON  `  定義了一個list,或者左側增加值。  返回list的長度。RPUSH   //這是右側增加值,上面是右側增加。LPOP    //左彈。返回的是被彈出的元素。彈完就沒了。不存在則返會null。RPOP  //右彈。LINDEXLSET  //LSET key index value將列表 key 下標為 index 的元素的值設定為 value 。 當 index 參數超出範圍,或對一個空列表( key 不 存在)進行 LSET 時,返回一個錯誤。 傳回值:操作成功返回OK,否則返回錯誤資訊。LINSERT //LINSERT key BEFORE|AFTER pivot value  將值value插入到列表key中,  位於值 pivot 之前或之 後。 當 pivot 不存在於列表 key 時,不執行任何操作。 當 key 不存在時, key 被視為空白列表,不執行任何操作。 如果 key 不是清單類型,返回一個錯誤。 

傳回值:
如果命令執行成功,返回插入操作完成之後,列表 的長度。 如果沒有找到 pivot ,返回 -1 。 如果 key 不存在或為空白列表,返回 0 。

LTRIM //LTRIM key start stop 對一個列表進行修剪(trim),就是說,讓列表只保留指定區 間內的元素,不在指定區間之內的元素都將被刪除。 下標(index)參數 start 和 stop 都以 0 為底,也就是說, 以 0 表示列表的第一個元素,以 1 表示列表的第二個元素 ,以此類推。你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素, 以此類推。當 key 不是清單類型時,返回一個錯誤。

傳回值: 命令執行成功時,返回 ok 。

RPOPLPUSH //RPOPLPUSH source destination 命令 RPOPLPUSH 在一個原子時間內,執行兩個動作:1 將列表 source 中的最後一個元素(尾元素)彈出,並返回給 用戶端。2.將 source 彈出的元素插入到列表 destination , 作為 destination 列表的的頭元素。 如果 source 不存在,值 nil 被返回,並且不執行其他動作。 如果 source 和 destination 相同,則列表中的表尾元素 被移動到表頭,並返回該元素,可以把這種特殊情況視作 列表的旋轉(rotation)操作。傳回值: 被彈出的元素。
sets

Sets:最多40億元素。

SADD   //建立新的集合。`SADD w1 xxx xxx xx`。也可添加新的元素,重複元素會被忽略。返回被添加到集合中的新元素的數量,不包括被忽略的元素。SINTER      //插入。SUNION  //SUNION key [key]  返回一個集合的全部成員的列表。SPOP //隨機彈出。如果不彈出只是查看的話,使用SRANDMEMBER命令。傳回值:被移除的隨機元素。或是空。SISMEMBER   //查看某一元素在不在列表中。SINTER //求交集。SDIFF//SDIFF key [key]  返回一個集合的全部成員,該集合是所有給定集合之間的差積。傳回值:一個包含差積成員的列表。SMOVE sources destination member  將member元素從source集合移動到destination集合。源集合沒有的元素不執行操作,否則執行。源和目的都有該元素,則源會被移除。元素不存在返回錯誤。成功返回1,如果不是source的元素則返回0.
sorted sets

Sorted Sets: //有序集合。

ZADD  //定義或增加引索。ZADD key score member [[score member] [score member] ...]ZRANGE  //指明起始和結束索引。ZCARD //定義ZRANK    //ZRANK key member   返回成員的排名。其中有序整合員按照score值遞增以排名為0。使用ZREVRANK命令可以獲得成員按score值遞減(從大到小)排列的排名。排名以 0 為底,也就是說, score 值最小的成員排名 為 0 。使用 ZREVRANK 命令可以獲得成員按 score 值遞減(從大到小)排列的排名。

傳回值:如果member是有序集key的成員,返返回 member 的 排名。 如果 member 不是有序集 key 的成員,返回nil
ZINCRBY //ZINCRBY key increment member 為集合 key 的成員member的score 值加上增量 increment 。可以通過傳遞一個負數值 increment ,讓 score 減去相應的值,比如 ZINCRBY key -5 member , 就是讓 member 的 score 值減去 5 。 當 key 不存在,或 member 不是 key 的成員時, ZINCRBY key increment member 等同於 ZADD key increment member 。
當key不是有序集類型時,返回一個錯誤。score值可以是整數值或雙精確度浮點數。
傳回值:member成員的新score值,以字串形式表示。
ZREMRANGEBYRANK key start stop //移除有序集 key 中,指定排名(rank)區間內的所有成員。 區間分別以下標參數 start 和 stop 指出,包含 start 和 stop 在內。 下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表 示有序集第一個成員,以 1 表示有序集第二個成員,以此 類推。 你也可以使用負數下標,以 -1 表示最後一個成員, -2 表 示倒數第二個成員,以此類推。 傳回值: 被移除成員的數量。

ZADD weekday1 1 mon 2 tue  3  web     //定義一個有序集合。或者添加。或者更新集合。返回被成功添加的新成員的數量,不包括被更新的,已存在的成員。ZRANGE  weekday1    //返回 integer  3 ZRANGE weekday1 tue  //返回 integer 1ZSCORE  weekday1   1  //根據元素返回SCORE.
hash

Hash:關聯陣列,2.0引入。Redis hash是一個string類型的field和valu e的映射表。 它的添加、 刪除操作都是0(1)( 平均)。 hash特別適合用於儲存物件。 相較 於將對象的每個欄位存成單個string類型。 將一個Object Storage Service在hash類型中會佔用更少的 記憶體, 並且可以更方便的存取整個對象。

 HSET    //HSET key field value 將雜湊表 key 中的域 field 的值設為 value 。 如果 key 不存在,一個新的雜湊表被建立並進行 HSET 操作。 如果域 field 已經存在於雜湊表中,舊值將被覆蓋。

傳回值: 如果 field 是雜湊表中的一個建立域,並且值 設定成功,返回 1 。 如果雜湊表中域 field 已經存在且舊值已被新 值覆蓋,返回 0 。

  HMSET     //HMSET key field value [field value ...] 同時將多個 field-value (域-值)對設定到雜湊表 key 中。 此命令會覆蓋雜湊表中已存在的域。 如果 key 不存在,一個空雜湊表被建立並執行 HMSET 操作。

傳回值: 如果命令執行成功,返回 OK 。 當 key 不是雜湊表(hash)類型時,返回一個錯誤。

  HINCRBY     //HINCRBY key field increment   為雜湊表 key 中的域 field 的值加上增量 increment 。 增量也可以為負數,相當於對給定域進行減法操作。 如果 key 不存在,一個新的雜湊表被建立並執行 HINCRBY 命令。 如果域 field 不存在,那麼在執行命令前,域的值被初始 化為 0 。 對一個儲存字串值的域 field 執行 HINCRBY 命令將造 成一個錯誤。 

傳回值: 執行 HINCRBY 命令之後,雜湊表 key 中域 field 的值

HMGET  //HMGET key field [field ...] 返回雜湊表 key 中,一個或多個給定域的值。 如果給定的域不存在於雜湊表,那麼返回一個 nil 值。

傳回值:一個包含多個給定域的關聯值的表,表值的排列順序和給定參數的請求順序一樣。

 HSETNX    //HGET    //取值HKEYS    //  返回雜湊表Key中的所有域。

傳回值:一個包含雜湊表中所有域的表。 當key不存在時,返回一個空表。
HVALS //
HDEL //刪除

hash h1 a mon  //增加索引值hash h1 b  tue  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.