系统设计-sns网站用户名称更改后如何同步数据

系统设计-sns网站用户名称更改后如何同步数据

归属感 发布于 2017-09-13 字数 180 浏览 1240 回复 2

类似facebook这样的SNS网站,有着大量的数据记录,它提供用户姓名修改的功能,而且修改后历史数据都是实时更新的,以前见过有些系统,历史记录还是原来的姓名。
这点是如何做到的?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-10-09 2 楼

应该是封装了内部调用的通过ID获取用户名方法,所有要显示用户名的地方都不会把用户名保存一个副本到别的表里。而许多项目为了所谓查询性能是会把一些冗余信息存到不相关的表里的,比如把用户名保存到博客表的作者名称字段里。
既然能动态变换肯定facebook就没这么做了。
那剩下的就是高效实现这个内部方法的问题了,也许是大规模地缓存id:用户名到nosql集群。实际做法很可能不是这么简单的映射吧,如果我实现,会是一个通过id查用户基本信息的内部接口,这个基本信息可能内容和比较多,所以还要多传几个参数控制下这次只查某一部分信息

浮生未歇 2017-09-25 1 楼

这种规模的网站,肯定用到了类似nosql之类的数据库,这些信息肯定是在内存中以key=>value的形式存在内存中的,所有地方存储用户的ID,把用户的ID和名称以key=>value的形式存在内存中(Tokyo Tyrant或者redis的set中),这样读取的时候只需在程序中获取这些用户的名称就可以了。