使用缓存应该考虑的问题
显然,对数据库中所有的数据都实施缓存是最简单的方法,大多数情况下,这可能也是实际开发中最常采用的模式(节省了开发人员的大量脑细胞)。
但是在某些情况下,这样的方式反而会对性能造成影响,如对于以下情况:一个电信话务系统,客户可以通过这套系统查询自己的历史通话记录。
这个案例中,对于每个客户,库表中可能都有成千上万条数据,而不同客户之间,基本不可能共享数据(客户只能查询自身的通话记录),如果对此表施以缓存管理,那么可以想象,内存会迅速被几乎不可能再被重用的数据充斥,系统性能急剧下降。
因此,在考虑缓存机制应用策略的时候,我们必须对当前系统的数据逻辑进行考察,以确定最佳的解决方案。
如果数据满足以下条件,则可将其纳入缓存管理。
1.数据不会被第三方应用修改
2.数据大小在可接受的范围之内
3.数据更新频率较低
4.同一数据可能会被系统频繁引用
5.非关键数据(关键数据,如金融账户数据,财务数据)
在使用ORM Bee框架时,
应该把不会被更新的固定配置表,设置在:
#永久缓存表的列表, 表名不区分大小写
#bee.osql.cache.forever=constant
极少可能更新的数据设置在:
#只有更改时才会清除缓存,以便同步新的值到缓存. 表名不区分大小写
#bee.osql.cache.modifySyn=para
不使用缓存的数据,放在(是1,2,3,5相反面的数据,不使用缓存,应该在此设置):
#不缓存表的列表, 表名不区分大小写.视图强烈建议不放缓存,因会产生脏数据.
#bee.osql.cache.never=user