微博项目的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 | 测试内容 |
关注表: following
Following:$userid -->
粉丝表
Follower:$userid --->
推送表:revicepost
=================拉模型,改进=====================
拉取表
问: 上次我拉取了A->5,67,三条微博,下次刷新home.php,从>7的微博开始拉取
解决: 拉取时,设定一个lastpull时间点,下次拉取时,取>lastpull的微博
问: 有很多关注人,如何取?
解决: 循环自己的关注列表,逐个取他们的新微博
问: 取出来之后放在哪儿?
答: pull:$userid的链接里
问: 如果个人中心,只有前1000条
答: ltrim,只取前1000条
问: 如果我关注A,B两人,从2人中,各取3条最新信息
,这3+3条信息,从时间上,是交错的,如何按时间排序?
答: 我们发布时,是发布的hash结构,不能按时间来排序.
解决: 同步时,取微博后,记录本次取的微博的最大id,
下次同步时,只取比最大id更大的微博
本文名称:微博项目的key设计
文章链接:http://cdiso.cn/article/psgcdo.html