微博项目的key设计

全局相关的key:

创新互联建站主营陆河网站建设的网络公司,主营网站建设方案,重庆APP开发,陆河h5微信小程序开发搭建,陆河网站营销推广欢迎陆河等地区企业咨询

表名

global

列名

操作

备注

Global:userid

incr

产生全局的userid

Global:postid

Incr

产生全局的postid

 

 

用户相关的key(表)

表名

user

Userid

Username

Password

Authsecret

3

Test3

1111111

#U*Q(%_

 

在redis中,变成以下几个key

Key前缀

user

User:Userid:*

User:userid:*Username

User:userid:*Password

User:userid:*:Authsecret

User:userid:3

User:userid:3:Test3

User:userid:3:1111111

User:userid:3:#U*Q(%_

 

 

微博相关的表设计

表名

post




Postid

Userid

Username

Time

Content

4

2

Lisi

1370987654f

测试内容

 

微博在redis中,与表设计对应的key设计

Key前缀

post




Post:Postid:*

Post:postid:*Userid

Post:postid:*:Username

Post:postid:*:Time

Post:postid:*:Content

4

2

Lisi

1370987654f

测试内容

 


微博项目的key设计关注表: following

Following:$userid -->

 

微博项目的key设计粉丝表

Follower:$userid ---> 微博项目的key设计

 

推送表:revicepost

微博项目的key设计

 

=================拉模型,改进=====================

 

拉取表

微博项目的key设计 

 

微博项目的key设计

问: 上次我拉取了A->5,67,三条微博,下次刷新home.php,从>7的微博开始拉取

解决: 拉取时,设定一个lastpull时间点,下次拉取时,取>lastpull的微博

 

问: 有很多关注人,如何取?

解决: 循环自己的关注列表,逐个取他们的新微博

 

问: 取出来之后放在哪儿?

答: pull:$userid的链接里

 

问: 如果个人中心,只有前1000条

答: ltrim,只取前1000条

 

 

问: 如果我关注A,B两人,从2人中,各取3条最新信息

,这3+3条信息,从时间上,是交错的,如何按时间排序?

答: 我们发布时,是发布的hash结构,不能按时间来排序.

 

解决:  同步时,取微博后,记录本次取的微博的最大id,

下次同步时,只取比最大id更大的微博


新闻名称:微博项目的key设计
文章来源:http://azwzsj.com/article/psgcdo.html