Maison >développement back-end >tutoriel php >redis初学建表问题

redis初学建表问题

WBOY
WBOYoriginal
2016-08-04 09:21:452300parcourir

假设目前有mysql表article结构为
id
title标题
info内容
tags标签id集合
status状态(-1,0,1,2)
atime添加时间
utime更新时间
ptime发布时间
需求按(标签/状态)获取文章根据(添加/更新/发布)时间排序
此时redis表应当如何设计?
目前的想法是
string类型
article:title:{id}
article:info:{id}
article:tags:{id}
article:status:{id}
article:atime:{id}
article: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发布时间
需求按(标签/状态)获取文章根据(添加/更新/发布)时间排序
此时redis表应当如何设计?
目前的想法是
string类型
article:title:{id}
article:info:{id}
article:tags:{id}
article:status:{id}
article:atime:{id}
article: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过多

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn