首頁 >後端開發 >php教程 >redis初學建表問題

redis初學建表問題

WBOY
WBOY原創
2016-08-04 09:21:452296瀏覽

假設目前有mysql表article結構為
id
title標題
info內容
tags標籤id集合
status狀態(-1,0,1,2)
atime添加時間
utime更新時間
ptime發佈時間
ptime (標籤/狀態)取得文章依據(新增/更新/發佈)時間排序
此時redis表應如何設計?
目前的想法是
string類型
article:title:{id}
article:info:{id}
article:tags:{id}
article:status:{id}
article:atime:{idid}
article:status:{id}
article:atime:{idid} :utime:{id}
article:ptime:{id}
set類型
全部集合:article:list
依照狀態分開儲存集合:article:status:{-1/0/1/2}

依照標籤分開儲存集合article:tag:{tag_id}

使用類似sort article:tag:1 by article:atime:*來獲得排序,這樣設計是否合理?


還有一個問題,嘗試做搜尋的時候,使用
zrangebylex article:status:0 [f (g
結果報錯
ERR unknown command 'zrangebylex'

是什麼原因?

回覆內容:


假設目前有mysql表article結構為
id
title標題
info內容
tags標籤id集合
status狀態(-1,0,1,2)
atime添加時間
utime更新時間
ptime發佈時間
ptime (標籤/狀態)取得文章依據(新增/更新/發佈)時間排序
此時redis表應如何設計?
目前的想法是
string類型
article:title:{id}
article:info:{id}
article:tags:{id}
article:status:{id}
article:atime:{idid}
article:status:{id}
article:atime:{idid} :utime:{id}
article:ptime:{id}
set類型
全部集合:article:list

依照狀態分開儲存集合:article:status:{-1/0/1/2}

依照標籤分開儲存集合article:tag:{tag_id}

使用類似sort article:tag:1 by article:atime:*來獲得排序,這樣設計是否合理?

還有一個問題,嘗試做搜尋的時候,使用
zrangebylex article:status:0 [f (g
結果報錯

ERR unknown command 'zrangebylex'

是什麼原因?

zrangebylex需要redis >= 2.8.9

sort article:tag:1 by article:atime:* 這句話是獲得添加時間排序的標籤為1的文章id排序吧?這設計可行

🎜string類型的話不太推薦,會造成key過多🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn