新Alpha前端页面


总数据体系1

<p>开发速度快(快),mysql表写入可以异步写入 使用中间件:kingshard <strong>mysql:</strong> 分库: A数据库: 用户表、匿名用户表、第三方用户表、登陆记录表、短信验证码、反馈表 B数据库:(按用户拆表)消息表、积分详细表、用户评论表、用户点赞表、 (总表)收藏表、分享表、 (按对象拆表):对象评论表、对象点赞表、对象评论点赞表、</p> <p>c数据库: 浏览表(按天拆表)、搜索表(按天拆表)、每日对象统计表、每日概念统计表、长期对象统计表、长期概念统计表、<strong>短期兴趣表</strong>、<strong>长期兴趣表</strong>、 (按用户拆表):用户浏览表(用于我的浏览查询)</p> <ol> <li>用户表</li> <li>匿名用户表</li> <li>第三方用户表(同上)</li> <li>登陆记录表(一般用户登陆之后,session有效期很长,除非用户主动退出/卸载,一般将永久有效)</li> <li>短信验证码表(同上)</li> <li>点赞记录表(使用分表技术记录数据,点赞记录表根据(用户id),初步一个库10个表,经过测试4个进程4个单表,插入数据为0.05s) 6.1 该表主要为写操作 6.2 该表的查询一般为我的点赞记录 6.3 也可以写入在redis中,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Like_List_20181231': [ {'user_id':'1','obj_key':'','status':'',} ] } # 取消点赞 {'Like_Channel_Lish_20181231': [{'user_id':'1','obj_key':'','status':'',}] }</code></pre></li> <li>收藏表(用户收藏行为比点赞行为要少,前期可以只需要一张表,也可以根据用户id进行分表) 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Collect_List_20181231': [ {'user_id':'1','url':'','text':'','share_type':'','platform':'','status':''} ] } # 取消收藏 {''Collect_Channel_Lish_20181231': [{'user_id':'1','obj_key':'','status':'',}] }</code></pre></li> <li>分享表(用户收藏行为比点赞行为要少,前期可以只需要一张表,也可以根据用户id进行分表) 8.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Share_List_20181231': [ {'user_id':'1','url':'','text':'','share_type':'','platform':'','status':''} ] }</code></pre></li> <li>浏览表(使用分表记录,数据量大(根据用户id分表)) 9.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'View_List_20181231': [ {'user_id':'1','obj_key':'','status':'','starttime':'时间戳','endtime':'时间戳'} ] }</code></pre></li> <li>用户搜索行为表(使用分库分表记录,数据量大(根据用户id分表)) 10.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Search_List_20181231': [ {'user_id':'1','raw_text':'','segmentation_result':'','sementic_analysis':'','other_data':'','ctime':'时间戳'} ] }</code></pre></li> <li>消息表(分表记录) 11.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Message_List_20181231':[ {'user_id':'','obj_key':'','content_id':'','type':'','status':''} ]}</code></pre></li> <li>积分详细表(分表记录) 12.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Integral_List_20181231': [ {'user_id':'1','total':'','score':'','data_src':'','data_remarks':'','other':'','ctime':'时间戳'} ] }</code></pre></li> <li>评论表(单表) 13.1 和点赞记录表一样,redis 异步+队列,把数据批量写入数据库 <pre><code>{'Comments_List_20181231': [] }</code></pre></li> <li>反馈表(单表)</li> </ol> <p><strong>redis</strong></p> <ol> <li>用户session信息表 有效期为30天(保存用户名和头像)</li> <li>发送短信验证码时,会把验证码写入redis中,设置为5分钟有效 使用字符串 <pre><code>{smsmsg_手机号码_Str:12345}</code></pre></li> <li>对象主键对应的浏览数, 数,点赞数,差评数(需要开发专门的底层接口) 创建概念:浏览、评论、点赞,每个对象默认的数字是0,当对象的浏览数,评论数或点赞数发生变化,对象先解除原来的关系,创建新关系 <pre><code>{'浏览_Object_Number_Table':'主键':0,'主键1':2,} {'Robject_Table_人物_浏览数_主键':{'主键':10001(关系序号乘以指定值+权重值)} } # 存储 对象的点赞数,评论数,浏览数,差评数(使用频率高) {'Object_主键_Hash':{'view':'浏览数主键','comment':'','good':'','bad':''}}</code></pre></li> <li>每个对象前N个评论(可以设置有效期2个小时),预先缓存到redis <pre><code># 记录评论的当前id {'Comments_Current_Id':12} # Objects_Comments_对象主键_Soreted中,如果超过10个,则按照点赞数进行按末位淘汰) {'Objects_Comments_对象主键_Soreted':{ '评论id':12 //点赞数 } } # 记录评论信息 {'Objects_Comments_对象主键_Hash':{ '评论id':{'user_id':'用户id','obj_key':'对象组合件','type':'类型','content':'内容','like_num':'点赞数量','status':'状态'} } } # 记录对象点赞用户did {Objects:Like:{'用户id':'时间戳'}}</code></pre></li> <li>用户表(因为用的比较多用户名,头像,还有积分) <pre><code>{'User_用户id':{'username':'用户名','phone':'手机号','avator':'头像','user_score':'',} }</code></pre></li> <li>记录每个对象的点赞名单 6.1 有效期只缓存1小时,如果查询时,找不到主键,直接去msql查询,如果从redis找不到,直接返回结果 <pre><code>{'Object_Like_Hash_主键':{ '用户id':'','用户id1':'' }}</code></pre></li> <li>长期的用户兴趣表 数据加工流程:先从每日用户浏览历史中,提取当天的用户兴趣表数据,然后汇总成长期的用户兴趣表 7.1 对象兴趣表 <pre><code>{'User:Object_用户id_SortedSet':{'主键1':1,'主键2':2} }</code></pre> <p>7.2 概念兴趣表</p> <pre><code>{'User:Concept_用户id_SortedSet':{'概念1':1,'概念2':2} }</code></pre> <p>7.3 对象点赞收藏表</p> <pre><code>{'User:Object:Collect_用户id_SoretedSet':{}}</code></pre></li> <li>短期的用户兴趣表 8.1 对象兴趣表 <pre><code>{'User:Object_用户id_20190110_SortedSet':{'主键1':1,'主键2':2} }</code></pre> <p>8.2 概念兴趣表</p> <pre><code>{'User:Concept_用户id_20190110_SortedSet':{'概念1':1,'概念2':2} }</code></pre></li> </ol>

页面列表

ITEM_HTML