...
|
...
|
@@ -24,16 +24,11 @@ Key Value结构: `KEY:<UID>, Value:LAST-CHECKIN-TIME(最近签到时间 |
|
|
SortedSet接口, `KEY: STAR_ORDER, Value: { <LAST-CHECKIN-TIME:UID>--> 亲密度信息 }`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
流程如下:
|
|
|
|
|
|
![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png)
|
|
|
|
|
|
|
|
|
|
|
|
### 表设计
|
|
|
|
|
|
Table: user_cohesion 用户-亲密度表
|
|
|
#### Table: user_cohesion 用户-亲密度表
|
|
|
|
|
|
| 列名 | 说明 |
|
|
|
| :--------- | :------------------- |
|
...
|
...
|
@@ -42,7 +37,7 @@ Table: user_cohesion 用户-亲密度表 |
|
|
| last_update| 更新时间,格式为int (到现在的秒数) |
|
|
|
|
|
|
|
|
|
Table: user_checkin_record 用户-签到记录表。 签到成功之后,添加记录
|
|
|
#### Table: user_checkin_record 用户-签到记录表。 签到成功之后,添加记录
|
|
|
|
|
|
| 列名 | 说明 |
|
|
|
| :--------- | :------------------- |
|
...
|
...
|
@@ -54,12 +49,13 @@ Table: user_checkin_record 用户-签到记录表。 签到成功之后, |
|
|
### 流程
|
|
|
|
|
|
#### 签到
|
|
|
插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度
|
|
|
插入到签到记录表--> 计算应该新增的亲密度--> 修改用户亲密度表,添加亲密度 --》缓存修改(见下图)
|
|
|
|
|
|
#### 查询亲密度前3名
|
|
|
Star-Cohesion-Order缓存中取前3个
|
|
|
![流程图] (https://www.processon.com/chart_image/5703a223e4b0bf3d8fdbf295.png)
|
|
|
|
|
|
#### 获取我的亲密度排名
|
|
|
从缓存中找到用户最近一次签到时间(如果没有,则从数据库user_checkin_record中查找)-->从CohesionOrder中找出Element的order
|
|
|
|
|
|
#### 查询亲密度前3名
|
|
|
所有用户的亲密度信息Cache中取前3个
|
|
|
|
|
|
#### 获取我的亲密度排名
|
|
|
从`记录用户最近一次签到时间`Cache 中找到用户最近一次签到时间(如果没有,则从数据库user_checkin_record中查找,并且设置到缓存中)-->从 `所有用户的亲密度信息` Cache 中找出Element的order |
|
|
\ No newline at end of file |
...
|
...
|
|