缓存技术全面解析与应用策略
1. 缓存管理器单元测试结果
在对缓存管理器进行单元测试时,运行测试的结果如示例所示。示例 19 - 7 展示了运行两个测试的结果,测试顺利通过,符合预期。具体测试结果如下:
| 测试情况 | 详情 |
| — | — |
| 第一次测试 | 2 个测试,4 个断言,0 个失败,1 个错误 |
| 第二次测试 | 2 个测试,6 个断言,0 个失败,0 个错误 |
测试代码运行情况:
ChakBookPro: chak$ ruby test/unit/logical/cache_manager_test.rb
Loaded suite test/unit/logical/cache_manager_test
Started
..
Finished in 0.033217 seconds.
2. 高流量网站缓存清理的考量
在高流量网站中,清理对象而非重建对象的成本可能远超预期。例如,若每秒收到 10 个对某对象的请求,重建该对象需 1 秒,若选择清理而非重建,可能需为重建付出高达 10 倍的代价。从时间线来看:
- 在 -0.1 时刻之前,请求能快速处理,因为请求的数据从缓存中获取。
- -0.1 时刻,某个请求导致缓存被清理。
- 0 时刻的请求在缓存中未找到数据,开始 0.4 秒的重建过程。
- 接下来的三个请求同样未在缓存中找到数据,各自触发不必要的重建过程。
- 0.4 时刻,第一次重建完成,此后的请求从缓存获取数据,但此时仍有三个重建过程在消耗资源。
这种情况发
超级会员免费看
订阅专栏 解锁全文
167万+

被折叠的 条评论
为什么被折叠?



