PHP/MySQL – 通过会话及更改标记实现读/写分离
2013-07-05 12:02
260 查看
正如笔者在其它博客中所论述的,本人一直在想,中国及全球的客户在快速增长,我如何才能更好地扩展他们的网站,而又能够保持其原有功能简单易用。我还撰写了另一篇博客,论及如何监控“从复制”的延迟,重点谈论了如何使用缓存来管理标记分配和控制网站负荷。
关于如何解决该问题,笔者还有另一想法,基本上就是通过会话实现读/写分离,若用户有所更新,可在某段时间内将其引向主数据库读取数据。
用户在进行更新操作时(如,变更密码、上传图片或发布新博客)极其关心系统的读延迟问题。对于此类用户而言,冗长的从库读取延迟确实会带来系统问题。
那么,使用会话系统呢?就像在Memcache/Redis中,在用户上次更新时,进行会话标记,也就是说,在用户上次变更重要数据时,对其会话加以标记,效果会如何呢?
这样,所有含有此重要数据的网页都可在会话层上,检查更新的时间戳,如果是最近更新的,比如说前一分钟的更新,网页便可直接连接主数据库读取数据,要不然,所有的读取数据的操作都在从数据库上进行。
这样不但极大地提高了用户体验,而且对系统影响很小,因为就算有延迟的话,其它读取数据的用户,在数秒内也能看到更新的内容。理想的情况就是:许多进行更新操作的用户,会把内容添加进来,然后通过邮件或短信形式通知其朋友去查看变更内容,这需要花几分钟的时间,但是数据很可能依然存储在缓存系统中。
该解决方案简单易用,而且适用于所有类型的数据,包括缓存中不常储存的数据,如密码以及站点中小型或罕见的功能性数据。
结论:尽管这些动态数据管理解决方案略显复杂,但却能够极大地提高用户体验,而且对系统负荷影响很小,仅需变更少量代码。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点此查看)
关于如何解决该问题,笔者还有另一想法,基本上就是通过会话实现读/写分离,若用户有所更新,可在某段时间内将其引向主数据库读取数据。
用户在进行更新操作时(如,变更密码、上传图片或发布新博客)极其关心系统的读延迟问题。对于此类用户而言,冗长的从库读取延迟确实会带来系统问题。
那么,使用会话系统呢?就像在Memcache/Redis中,在用户上次更新时,进行会话标记,也就是说,在用户上次变更重要数据时,对其会话加以标记,效果会如何呢?
这样,所有含有此重要数据的网页都可在会话层上,检查更新的时间戳,如果是最近更新的,比如说前一分钟的更新,网页便可直接连接主数据库读取数据,要不然,所有的读取数据的操作都在从数据库上进行。
这样不但极大地提高了用户体验,而且对系统影响很小,因为就算有延迟的话,其它读取数据的用户,在数秒内也能看到更新的内容。理想的情况就是:许多进行更新操作的用户,会把内容添加进来,然后通过邮件或短信形式通知其朋友去查看变更内容,这需要花几分钟的时间,但是数据很可能依然存储在缓存系统中。
该解决方案简单易用,而且适用于所有类型的数据,包括缓存中不常储存的数据,如密码以及站点中小型或罕见的功能性数据。
结论:尽管这些动态数据管理解决方案略显复杂,但却能够极大地提高用户体验,而且对系统负荷影响很小,仅需变更少量代码。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点此查看)
相关文章推荐
- PHP/MySQL – 通过会话及更改标记实现读/写分离
- 通过缓存中的复制延迟标记实现对PHP/MySQL的读/写的分离式控制
- 通过缓存中的复制延迟标记实现对PHP/MySQL的读/写的分离式控制
- MySQL集群系列2:通过keepalived实现双主集群读写分离
- LNMP基于fastcgi实现nginx,php,mysql的分离
- php uniqid() 通过MYSQL实现全局不重复的唯一ID
- apache的mysql a-b-b基础上通过dr实现读取数据的分离
- 坚持#第268天~个人博客和qq农场成功实现了全分离(mysql、nginx、php)
- RDS通过Mysql-Porxy实现读写分离
- PHP实现的通过参数生成MYSQL语句类完整实例
- php通过会话控制实现身份验证实例
- 基于LNMP实现动静分离,PHP+Memcached实现会话保持
- LNMP基于fastcgi实现nginx,php,mysql的分离安装部署
- php 实现Mysql读写分离操作及数据库连接类
- 【 Linux 】lvs-dr模型实现HA,后端Nginx、PHP、MySQL分离 搭建wordpress站点
- PHP通过插入mysql数据来实现多机互锁实例
- LNMP基于fastcgi实现nginx,php,mysql的分离
- php通过会话控制实现身份验证
- PHP实现的通过参数生成MYSQL语句类完整实例
- LNMP基于fastcgi实现nginx,php,mysql的分离