Redis的資料類型及操作

來源:互聯網
上載者:User

標籤:

  • Strings

    最簡單的類型,一個Key對應一個Value,string類型是二進位安全的。Redis的string可以包含任何資料,片或序列化的對象

    • 操作
      • Set:設定key對應的值為string類型的value,如 set name Fahy
      • Setnx:設定key對應的值為string類型的value,如果key已經存在,返回0,如 setnx name Fahy
      • Setex:設定key對應的值為string類型的value,並指定此索引值對的有效期間,如 setex name 10 Fahy
      • Setrange:設定指定key的value值的子字串,替換相同長度的字元,如 已有一對key-value為[email protected],則 setrange email 8 qq.com 會使[email protected]
      • mset:一次設定多個key的值,成功返回ok表示所以值都被設定,失敗返回0表示沒有任何值被設定,如 mset key1 huangweijian key2 others
      • msetnx:一次設定多個key的值,成功返回ok表示所有值都被設定,失敗返回0表示沒有任何值被設定,但不會覆蓋以存在的key,如 msetnx key3 huangweineng key4 yellow
      • get:擷取key對應的value,如果key不存在,返回nill,如 get key1
      • getset:設定key的值,並返回key的舊值,如 getset key2 huangsurong
      • getrange:擷取key的value值的子字串,如 getrange key1 0 4,返回從第0到第4個字元"huang"
      • mget:一次擷取多個key的值,如果對應的key不存在,返回nil,如 mget key1 key2 key3
      • incr:對key的值做++操作,並返回新的值,當key不存在時,設定key值為0再進行加操作,如 incr key5
      • incrby:對key的值做加指定值操作,當key不存在時,設定key值為0再進行加操作,如 incrby key6  7
      • decr:對key的值做--操作,當key不存在時,設定key值為0再進行減操作,如 decr key7
      • decrby:對key的值做減指定值操作,當key不存在時,設定key值為0再進行減操作,如 decrby key8  7
      • append:給指定key的字串追加value,返回新字串值的長度,當key不存在時,添加該key,如 append key1 @sina.com
      • strlen:返回指定key的value長度,如 strlen key1
      • del:刪除指定key,如 del key1
  • hashes:可建立一張hash表

    Redis hash是一個string類型的field(欄位)和value的映射表,它的添加、刪除操作都是O(I)(平均)。適合儲存物件,佔用更少的記憶體,並且方便存錢整個對象

    • 操作
      • hset:設定hash field為指定值,如果key不存在,則先建立,如 hset hashtable field hello
      • hsetnx:設定hash field為指定值,如果key不存在,則先建立,如果存在返回0,如 hsetnx hashtable field1 world
      • hmset:同時設定hash的多個field,如 hmset hashtable field2 helloween field3 christmas
      • hget:擷取指定的hash field,如 hget hashtable field
      • hmget:擷取全部指定的hash field,如 hmget hashtable field field1 field2
      • hincrby:指定的hash field加上特定值,如 hincrby hashtable field4 5
      • hdecrby:指定的hash field減去特定值,如 hdecrby hashtable field4 5
      • hexists:判斷指定field是否存在,如 hexists hashtable field4
      • hlen:返回指定hash的field數量,如 hlen hashtable
      • hdel:刪除指定hash的field,如 hdel hashtable field
      • hkeys:返回hash的所有field,如 hkeys hashtable
      • hvals:返回hash的所有value,如 hvals hashtable
      • hgetall:擷取某個hash中全部的field幾value,如 hgetall hashtable
  • lists:一個鏈表結構,主要功能是push,pop,擷取一個範圍的所有值等等,操作中key理解為鏈表的名字。

    Redis的list類型其實就是一個每個子項目都是string類型的雙向鏈表。既可作為棧,又可作為堆

    • 操作
      • lpush:在key對應list的頭部添加字串元素,如 lpush list hello
      • rpush:在key對應的list的尾部添加字串元素,如 rpush list world
      • linsert:在key對應list的特定位置前或後添加字串,如 linsert list before world my 或 linsert list after hello you
      • lset:設定list中指定下表的元素值,如 lset list 1 he
      • lrange:返回指定範圍內的元素,如 lrange list 0 -1
      • lrem:從key對應的list中刪除n個和value相同的元素,n<0從尾刪除,n=0全部刪除,如 lrem list 1 you
      • ltrim:保留指定範圍內的資料,如 ltrim list 1 -1
      • lpop:從list頭部刪除元素,並返回刪除元素,如 lpop list
      • rpop:從list尾部刪除元素,並返回刪除元素,如 rpop list
      • rpoplpush:移除第一個list尾部元素到第二個list頭部,如 rpoplpush list1 list2
      • lindex:返回名稱為key的list的index位置的元素,如 lindex list 1
      • llen:返回key對應的list的長度,如 llen list
  • sets:集合,是string類型的無序集合

    Redis的set類型通過hash table實現的,添加、刪除和尋找的複雜度都是O(1)。對集合可以取並集、交集和差集。

    • 操作
      • sadd:向名稱為key的set中添加元素,如 sadd settable hello
      • srem:刪除名稱為key的set中的元素,如 srem settable two
      • smember:擷取名稱為key的set中的所有元素,如 smember settable
      • spop:隨機返回並刪除名稱為key的set中的元素,如 spop settable
      • sdiff:返回以key1為標準,與其他key不同的元素,如 sdiff set1 set2
      • skiffstore:將以key1為標準,與其他key不同的元素,存到key3中,如 sdiffstore key3 key1 key2
      • sinter:返回所有給定key的交集,如 sinter set1 set2
      • sinterstore:將所有給定key的交集儲存到另一個key中,如 sinterstore key key1 key2
      • sunion:返回所有給定key的並集,如 sunion set1 set2
      • sunionstore:將所有給定key的並集儲存到另一個key中,如 sunionstore key key1 key2
      • smove:從第一個key對應的set中移除member並添加到第二個對應的set中,如 smove set1 set2 hello
      • scard:返回名稱為key的set元素個數,如 scard set1
      • sismember:測試member是否屬於名稱為key的set的元素,如 sismember set member
      • srandmember:隨機返回名稱為key的set的一個元素,如 srandmember set
  • sorted sets:在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以制定,每次指定後,zset會重新按新的值調整順序,序號可相同,值不可相同
    • 操作
      • zadd:向名稱為key的set中添加元素,並指定序號,如 zadd settable 1 hello
      • zrange:返回指定索引範圍內的元素,添加withscores,返回序號,如 zrange settable 0 -1 withscores
      • zrem:刪除名稱為key的zset中個元素member,如 zrem settable hello
      • zincrby:如果在名稱為key的zset中給已經存在元素member,則該元素的score增加increment,否則,向該集合中添加該元素,起score的值為increment,如 zincrby settable 2 earth
      • zrank:返回名稱為key的zset中member元素的排名(按score從小到大排序),如 zrank settable earth withscores
      • zrevrank:返回名稱為key的zset中member元素的排名(按score從大到小排序),如 zrevrank settable earth withscores
      • zrevrange:返回名稱為key的zset(按score從大到小順序)中的index從start到end的所有元素,如 zrevrange settable 0 -1 withscores
      • zrangebyscore:返回集合中score在給定區間的元素,如 zrangebyscore settable 1 3 withscores
      • zcount:返回集合中score在給定區間的元素個數,如 zcount settable 1 3
      • zcard:返回集合中的元素個數,如 zcard settable
      • zremrangebyrank:刪除集合中排名的索引在給定區間的元素,如 zremrangebyrank settable 1 1
      • zremrangebyscore:刪除集合中score在給定區間的元素,如 zremrangebyscore settable 1 2

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.