由於每個字符串類型鍵只能存儲一個字符串,而一篇博客文章是由標題、正文、作者與發佈時間等多個元素構成的。爲了存儲這些元素,我們需要使用序列化函數(如serialize)將它們轉換成一個字符串。除此之外,因爲字符串類型鍵可以存儲二進制數據,所以也可以使用MessagePack進行序列化,它的速度更好,佔用空間也更小。
序列化:發佈新文章時的Redis操作
# 首先獲得新文章的ID
$postID = incr posts:count
# 將博客文章的諸多元素序列化成字符串
$serializedPost = serialize($title, $content, $author, $time)
# 把序列化後的字符串存入一個字符串類型的鍵中
set post:$postID:data, $serializedPost
# 反序列化,從Redis中讀取文章數據
$serializedPost = get post:42:data
# 將文章數據反序列化成文章的各個元素
$title, $content, $author, $time = unserialize($serializedPost)
# 獲取並遞增文章的訪問數量
$count = incr post:42:page.view