redis 基本數據類型

概述app

Redis的鍵值能夠使用物種數據類型:字符串,散列表,列表,集合,有序集合。本文詳細介紹這五種數據類型的使用方法。本文命令介紹部分只是列舉了基本的命令,至於具體的使用示例,能夠參考Redis官方文檔:Redis命令大全ui

字符串類型.net

字符串是Redis中最基本的數據類型,它可以存儲任何類型的字符串,包含二進制數據。能夠用於存儲郵箱,JSON化的對象,甚至是一張圖片,一個字符串容許存儲的最大容量爲512MB。字符串是其餘四種類型的基礎,與其餘幾種類型的區別從本質上來講只是組織字符串的方式不一樣而已。code

基本命令對象

字符串操做blog

  1. SET 賦值,用法: SET key value排序

  2. GET 取值,用法: GET key索引

  3. INCR 遞增數字,僅僅對數字類型的鍵有用,至關於Java的i++運算,用法: INCR key隊列

  4. INCRBY 增長指定的數字,僅僅對數字類型的鍵有用,至關於Java的i+=3,用法:INCRBY key increment,意思是key自增increment,increment能夠爲負數,表示減小。圖片

  5. DECR 遞減數字,僅僅對數字類型的鍵有用,至關於Java的i–,用法:DECR key

  6. DECRBY 減小指定的數字,僅僅對數字類型的鍵有用,至關於Java的i-=3,用法:DECRBY key decrement,意思是key自減decrement,decrement能夠爲正數,表示增長。

  7. INCRBYFLOAT 增長指定浮點數,僅僅對數字類型的鍵有用,用法:INCRBYFLOAT key increment

  8. APPEND 向尾部追加值,至關於Java中的」hello」.append(「 world」),用法:APPEND key value

  9. STRLEN 獲取字符串長度,用法:STRLEN key

  10. MSET 同時設置多個key的值,用法:MSET key1 value1 [key2 value2 ...]

  11. MGET 同時獲取多個key的值,用法:MGET key1 [key2 ...]

位操做

  1. GETBIT 獲取一個鍵值的二進制位的指定位置的值(0/1),用法:GETBIT key offset

  2. SETBIT 設置一個鍵值的二進制位的指定位置的值(0/1),用法:SETBIT key offset value

  3. BITCOUNT 獲取一個鍵值的一個範圍內的二進制表示的1的個數,用法:BITCOUNT key [start end]

  4. BITOP 該命令能夠對多個字符串類型鍵進行位運算,並將結果存儲到指定的鍵中,BITOP支持的運算包含:OR,AND,XOR,NOT,用法:BITOP OP desKey key1 key2

  5. BITPOS 獲取指定鍵的第一個位值爲0或者1的位置,用法:BITPOS key 0/1 [start, end]

散列類型

散列類型至關於Java中的HashMap,他的值是一個字典,保存不少key,value對,每對key,value的值個鍵都是字符串類型,換句話說,散列類型不能嵌套其餘數據類型。一個散列類型鍵最多能夠包含2的32次方-1個字段。

基本命令

  1. HSET 賦值,用法:HSET key field value

  2. HMSET 一次賦值多個字段,用法:HMSET key field1 value1 [field2 values]

  3. HGET 取值,用法:HSET key field

  4. HMGET 一次取多個字段的值,用法:HMSET key field1 [field2]

  5. HGETALL 一次取全部字段的值,用法:HGETALL key

  6. HEXISTS 判斷字段是否存在,用法:HEXISTS key field

  7. HSETNX 當字段不存在時賦值,用法:HSETNX key field value

  8. HINCRBY 增長數字,僅對數字類型的值有用,用法:HINCRBY key field increment

  9. HDEL 刪除字段,用法:HDEL key field

  10. HKEYS 獲取全部字段名,用法:HKEYS key

  11. HVALS 獲取全部字段值,用法:HVALS key

  12. HLEN 獲取字段數量,用法:HLEN key

列表類型

列表類型(list)用於存儲一個有序的字符串列表,經常使用的操做是向隊列兩端添加元素或者得到列表的某一片斷。列表內部使用的是雙向鏈表(double linked list)實現的,因此向列表兩端添加元素的時間複雜度是O(1),獲取越接近列表兩端的元素的速度越快。可是缺點是使用列表經過索引訪問元素的效率過低(須要從端點開始遍歷元素)。因此列表的使用場景通常如:朋友圈新鮮事,只關心最新的一些內容。藉助列表類型,Redis還能夠做爲消息隊列使用。

基本命令

  1. LPUSH 向列表左端添加元素,用法:LPUSH key value

  2. RPUSH 向列表右端添加元素,用法:RPUSH key value

  3. LPOP 從列表左端彈出元素,用法:LPOP key

  4. RPOP 從列表右端彈出元素,用法:RPOP key

  5. LLEN 獲取列表中元素個數,用法:LLEN key

  6. LRANGE 獲取列表中某一片斷的元素,用法:LRANGE key start stop,index從0開始,-1表示最後一個元素

  7. LREM 刪除列表中指定的值,用法:LREM key count value,刪除列表中前count個值爲value的元素,當count>0時從左邊開始數,count<0時從右邊開始數,count=0時會刪除全部值爲value的元素

  8. LINDEX 獲取指定索引的元素值,用法:LINDEX key index

  9. LSET 設置指定索引的元素值,用法:LSET key index value

  10. LTRIM 只保留列表指定片斷,用法:LTRIM key start stop,包含start和stop

  11. LINSERT 像列表中插入元素,用法:LINSERT key BEFORE|AFTER privot value,從左邊開始尋找值爲privot的第一個元素,而後根據第二個參數是BEFORE仍是AFTER決定在該元素的前面仍是後面插入value

  12. RPOPLPUSH 將元素從一個列表轉義到另外一個列表,用法:RPOPLPUSH source destination

集合類型

集合在概念在高中課本就學過,集合中每一個元素都是不一樣的,集合中的元素個數最多爲2的32次方-1個,集合中的元素師沒有順序的。

基本命令

  1. SADD 添加元素,用法:SADD key value1 [value2 value3 ...]

  2. SREM 刪除元素,用法:SREM key value2 [value2 value3 ...]

  3. SMEMBERS 得到集合中全部元素,用法:SMEMBERS key

  4. SISMEMBER 判斷元素是否在集合中,用法:SISMEMBER key value

  5. SDIFF 對集合作差集運算,用法:SDIFF key1 key2 [key3 ...],先計算key1和key2的差集,而後再用結果與key3作差集

  6. SINTER 對集合作交集運算,用法:SINTER key1 key2 [key3 ...]

  7. SUNION 對集合作並集運算,用法:SUNION key1 key2 [key3 ...]

  8. SCARD 得到集合中元素的個數,用法:SCARD key

  9. SDIFFSTORE 對集合作差集並將結果存儲,用法:SDIFFSTORE destination key1 key2 [key3 ...]

  10. SINTERSTORE 對集合作交集運算並將結果存儲,用法:SINTERSTORE destination key1 key2 [key3 ...]

  11. SUNIONSTORE 對集合作並集運算並將結果存儲,用法:SUNIONSTORE destination key1 key2 [key3 ...]

  12. SRANDMEMBER 隨機獲取集合中的元素,用法:SRANDMEMBER key [count],當count>0時,會隨機中集合中獲取count個不重複的元素,當count<0時,隨機中集合中獲取|count|和可能重複的元素。

  13. SPOP 從集合中隨機彈出一個元素,用法:SPOP key

有序集合類型

有序集合類型與集合類型的區別就是他是有序的。有序集合是在集合的基礎上爲每個元素關聯一個分數,這就讓有序集合不只支持插入,刪除,判斷元素是否存在等操做外,還支持獲取分數最高/最低的前N個元素。有序集合中的每一個元素是不一樣的,可是分數卻能夠相同。有序集合使用散列表和跳躍表實現,即便讀取位於中間部分的數據也很快,時間複雜度爲O(log(N)),有序集合比列表更費內存。

基本命令

    1. ZADD 添加元素,用法:ZADD key score1 value1 [score2 value2 score3 value3 ...]

    2. ZSCORE 獲取元素的分數,用法:ZSCORE key value

    3. ZRANGE 獲取排名在某個範圍的元素,用法:ZRANGE key start stop [WITHSCORE],按照元素從小到大的順序排序,從0開始編號,包含start和stop對應的元素,WITHSCORE選項表示是否返回元素分數

    4. ZREVRANGE 獲取排名在某個範圍的元素,用法:ZREVRANGE key start stop [WITHSCORE],和上一個命令用法同樣,只是這個倒序排序的。

    5. ZRANGEBYSCORE 獲取指定分數範圍內的元素,用法:ZRANGEBYSCORE key min max,包含min和max,(min表示不包含min,(max表示不包含max,+inf表示無窮大

    6. ZINCRBY 增長某個元素的分數,用法:ZINCRBY key increment value

    7. ZCARD 獲取集合中元素的個數,用法:ZCARD key

    8. ZCOUNT 獲取指定分數範圍內的元素個數,用法:ZCOUNT key min max,min和max的用法和5中的同樣

    9. ZREM 刪除一個或多個元素,用法:ZREM key value1 [value2 ...]

    10. ZREMRANGEBYRANK 按照排名範圍刪除元素,用法:ZREMRANGEBYRANK key start stop

    11. ZREMRANGEBYSCORE 按照分數範圍刪除元素,用法:ZREMRANGEBYSCORE key min max,min和max的用法和4中的同樣

    12. ZRANK 獲取正序排序的元素的排名,用法:ZRANK key value

    13. ZREVRANK 獲取逆序排序的元素的排名,用法:ZREVRANK key value

    14. ZINTERSTORE 計算有序集合的交集並存儲結果,用法:ZINTERSTORE destination numbers key1 key2 [key3 key4 ...] WEIGHTS weight1 weight2 [weight3 weight4 ...] AGGREGATE SUM | MIN | MAX,numbers表示參加運算的集合個數,weight表示權重,aggregate表示結果取值

    15. ZUNIONSTORE 計算有序幾個的並集並存儲結果,用法和14同樣,再也不贅述。      

    http://blog.csdn.net/hechurui/article/details/49508735

相關文章
相關標籤/搜索