假設目前有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}
使用類似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:tag:{tag_id}
使用類似sort article:tag:1 by article:atime:*來獲得排序,這樣設計是否合理?
還有一個問題,嘗試做搜尋的時候,使用
zrangebylex article:status:0 [f (g
結果報錯
是什麼原因?
zrangebylex需要redis >= 2.8.9
sort article:tag:1 by article:atime:* 這句話是獲得添加時間排序的標籤為1的文章id排序吧?這設計可行
🎜string類型的話不太推薦,會造成key過多🎜