工作那些事儿(12)- 缓存

原创
2013/07/01 13:09
阅读数 70

    企业内部有很多生产经营类的统计指标数据,这些大多都是从数据库里统计出来的,EIP中就有一个综合指标的统计模块。

    这个模块的加载,真的非常非常慢,因为以前开发数据的人本身就没怎么考虑将来,也没有优化,几年前上线的时候数据量很小,统计的速度就还可以接受,程序跑了几年,数据累积下来有点规模了,那速度下降就非常明显。要优化其实最根本是优化那个统计程序本身。但要知道在企业环境中,这些遗留系统,真是没人想去碰他,你说有个万一改出个bug,没人能担保可以回到过去。维护的人早换几拨了,找以前厂商来也是不靠谱的。

    要优化这个性能问题,只能先从外围入手,于是决定在EIP这个集成层面来优化。很自然就想到了缓存的方式。因为这些统计数据,时间变化的粒度不会很细,多数以天为单位,所以不需要做成实时的;另外每个人看到的数据都是一样的,也就是说没有个人权限的约束。这样的情景,最适合用缓存了。刚开始想到是用定时器将统计数据读取到一个静态文件里,然后前端再访问文件获取数据。这其实也是一个有效的办法,只是没那么优雅。后来改用了memcached,毕竟内存读写相比文件读写还是快了许多的。

    这memcached现在说来,真是掉地上一堆捡不完,但要换成在企业应用里面,估计我们还是先行者,这也是将互联网技术融合到企业应用开发中的典型。

    除了memcached,还有其他一些地方用到缓存的思想。譬如我刻意将数据库设计得比较简单,sql也很简单,筛选语句很简单,然后把东西都拉到前端后,再从前端来做筛选,譬如分页功能。某程度上,这也是将服务器上的计算压力分离到客户端浏览器上。当然这也有我洁癖的原因在,因为在企业的访问量下,这样的优化真看不出明显效果。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部