Redis資料類型

來源:互聯網
上載者:User

標籤:

今天來學習redis的基礎資料類型,redis中一共有五種資料類型,分別是:string,hash,list,set,zset。下面分別進行介紹。

一、string(字串)

字串類型是redis最基礎的資料類型,它能儲存任何形式的字串,包括位元據。一個字串類型允許儲存的資料最大容量是512M。字串是其他4種資料類型的基礎。

1 字串相關命令

1)GET/SET命令

SET key value    #給key賦值GET key          #擷取key的值
127.0.0.1:6379> SET str ‘hello,world‘OK127.0.0.1:6379> GET str"hello,world"

當鍵不存在時返回空值。

2)INCR遞增命令

字串類型可以儲存任何形式的字串,當儲存的字串是整數形式時,可以用incr命令讓它自動遞增。

INCR key127.0.0.1:6379> INCR bar(integer) 2127.0.0.1:6379> INCR bar(integer) 3

當鍵不存在時,會自動建立該鍵並從0開始遞增。

2 字串實踐

1)文章訪問量統計

部落格常見的一個功能就是統計文章的訪問量,這裡我們可以為每篇文章使用名為post:id:page.view的鍵來記錄文章的訪問量,每次有人訪問的時候用incr命令為該鍵遞增。

鍵的命名規則:物件類型:對象id:對象屬性

如:user:1:friends 表示id為1的使用者的好友名單,增加易讀性和可維護性。

2)產生自增ID

怎麼為每篇文章標示一個唯一ID呢?在關係型資料庫中可以用auto_increment,但是在redis中可以通過另一種模式實現:對每一類對象使用名為物件類型(複數形式):count的鍵來儲存當前物件類型的數量,沒增加一個新對象就對該值進行遞增。

3)儲存文章資料

文章資料包括標題、內容、發布時間等欄位,而我們知道一個字串類型只能儲存一個字串,那麼如何儲存文章資料呢?因為字串類型可以儲存位元據,可以採用MessagePack進行序列化,速度更快,佔用空間更小。下面是虛擬碼:

 

#獲得新文章ID$postid = INCR posts:count #將部落格文章諸多欄位序列化成字串$serialpost = serialize($posttitle,$content,$author,$time)#將序列化後的文章儲存到字串中SET post:$postid:data = $serialpost#從redis中讀取id=42的文章資料$serialpost = GET post:42:data#將文章還原序列化成各個欄位$posttitle,$content,$author,$time=unserialize($serialpost)#擷取文章的訪問數量$count = INCR post:42:page.view

 

3 字串相關擴充命令

1)增加指定整數

INCRBY key increment127.0.0.1:6379> GET goo"2"127.0.0.1:6379> INCRBY goo 3(integer) 5

2)減少指定整數

DECR keyDECRBY key value127.0.0.1:6379> GET goo"5"127.0.0.1:6379> DECR goo(integer) 4127.0.0.1:6379> DECRBY goo 2(integer) 2

3)向尾部追加值

APPEND key value,如果該鍵不存在則將該value設為鍵的值,傳回值是追加後的長度。

127.0.0.1:6379> GET str"hello,world"127.0.0.1:6379> APPEND str ‘,zhao‘(integer) 16127.0.0.1:6379> GET str"hello,world,zhao"

4)擷取字串長度

STRLEN key

127.0.0.1:6379> STRLEN str(integer) 16

5)同時設定/擷取多個索引值

MGET/MSET key1 key2 ....

127.0.0.1:6379> MGET str goo bar1) "hello,world,zhao"2) "2"3) "3"

一、hash(散列類型)

 

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.