Redis學習筆記(三)-資料類型之string類型

來源:互聯網
上載者:User

標籤:

  string是redis最基本的類型,而且string類型是二進位安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的對象。從內部實現來看其實string可以看作byte數組,最大上限是1G位元組。下面是string類型的定義。

  struct sdshdr {

      long len;

      long free;

      char buf[];

  };

  buf是個char數組用於存貯實際的字串內容。其實char和c#中的byte是等價的,都是一個位元組。len是buf數組的長度,free是數組中剩餘可用位元組數。由此可以理解為什麼string類型是二進位安全的了。因為它本質上就是個byte數組。當然可以包含任何資料了。另外string類型可以被部分命令按int處理.比如incr等命令。還有redis的其他類型像list,set,sorted set ,hash它們包含的元素與都只能是string類型。如果只用string類型,redis就可以被看作加上持久化特性的memcached。當然redis對string類型的操作比memcached多很多。

 set key value 設定key對應的值為string類型的value,返回OK表示成功

 

 setnx key value 同上,如果key已經存在,返回0 。nx 是not exist的意思

 

 get key 擷取key對應的string值,如果key不存在返回nil

 

 getset key value 原子的設定key的值,並返回key的舊值。如果key不存在返回nil

 

 mget key1 key2 ... keyN 一次擷取多個key的值,如果對應key不存在,則對應返回nil

 

 mset key1 value1 ... keyN valueN 一次設定多個key的值,成功返回OK表示所有的值都設定了,失敗返回0表示沒有任何值被設定

  

 msetnx key1 value1 ... keyN valueN 同上,但是不會覆蓋已經存在的key

  

 incr key 對key的值做加加操作,並返回新的值。注意incr一個不是int的value會返回錯誤,incr一個不存在的key,則設定key為1

 

 decr key 同上,但是做的是減減操作,decr一個不存在key,則設定key為-1

 

  incrby key integer 同incr,加指定值,key不存在時候會設定key,並認為原來的value是0

 

 decrby key integer 同decr,減指定值。decrby完全是為了可讀性,我們完全可以通過incrby一個負值來實現同樣效果,反之一樣。

 

 append key value 給指定key的字串值追加value,返回新字串值的長度

 

 substr key start end 返回截取過的key的字串值,注意並不修改key的值,下標是從0開始的

 

Redis學習筆記(三)-資料類型之string類型

聯繫我們

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