1. 缓存-->系统替代程序员接管了缓存的存取访问,缓存的 Key 和 Value 由系统处理.
2. cache 处理器的引入减少了 40% 的数据访问层代码 !
3. 采用了 Namespace 的方法使得缓存能自动清除了.
4. Namespace 借助 PHP fcgi + SQLite 使得系统变得很慢 (10000w pv/day)
5. memcached 不支持namespace,也不支持遍历.
6. 际遇之前开发的 monkey(java nio 框架)实现了一个支持namespace 遍历功能的内存缓存程序 jmcd.我们采用了简单高效的 STP 协议.
7. 逻辑层(cache 处理器)-->R
数据访问层(cache 处理器)-->W
8. NS处理器 --->Namespace cache
9. Data Accessor---->缩减数据访问代码.
10. DAL 关于分库:
1). 垂直切分---> 分到不同的数据库和服务器
2). 水平切分: 对数据进行水平分割. (最好分在同一个数据库)
a). 主表+辅表.
11. 缓存不应该紧耦合于业务逻辑.
12. 慎用 XC/APC 缓存, mc/jmc 这种远程缓存已经够用了。
13. 缓存的最佳实践:
缓存单个条目,根据 id list (unique key list) 找到表。
14. 缓存能自动清理就自动清理,不能自动--->想办法自动清理.
15. DAL Server2.0 : core + plugins
core: 配置处理,查询分析,选路策略,数据处理 .
plugins :CacheProvider, ConnectionProvider
架构分享[个人笔记]
最新推荐文章于 2024-11-06 17:04:57 发布
本文探讨了通过引入缓存处理器来减少数据访问层代码的方法,包括使用Namespace自动清理缓存,以及通过垂直和水平切分数据库来优化数据访问。同时介绍了如何利用内存缓存程序jmcd支持namespace遍历,并讨论了最佳缓存实践。
摘要由CSDN通过智能技术生成