在表示层,翻页时是依据主键到缓存中查询,没有则到数据库中查.这就有三个问题:
1、按主键到数据库查询,会增加与数据库的交互次数。
2、缓存中的数据如何和数据库中的数据保持同步,确保查询的是数据库数据的真实情况。
3、如果批量查询比较多,那缓存对系统资源的开销将会很大,使中间件的资源不足,使系统性能下降很快。
请问您的缓存是如何实现的?原理是什么?
请指点,谢谢。
请问您的缓存是如何实现的?原理是什么?
请指点,谢谢。
可以说没有缓存的系统不成为系统。
>按主键到数据库查询,会增加与数据库的交互次数。
第一次是慢,但是第二次以后会更快,而且第一次调用Jsp也会很慢,所以和Jsp慢混淆在一起,用户基本感受不到。
>2、缓存中的数据如何和数据库中的数据保持同步,确保查询的是数据库数据的真实情况。
更新是门学问,缓存难就难在更新。粒度更新越细,利用效率高,所以缓存一般是结合业务的状态一起设计的。
>3、如果批量查询比较多,那缓存对系统资源的开销将会很大,使中间件的资源不足,使系统性能下降很快。
根据你的查询量限定缓存大小,通过缓存管理,有各种算法:如先进先出等,将不常用的数据从缓存去除,通过缓存击中率来调整tuning缓存大小,根据你业务缓存情况决定你的硬件内存大小,而不是由硬件内存大小决定软件设计,硬件内存已经扩展64位计算,成本越来越低,分布式缓存计算产品也日益成熟,EJB就是一个分布式缓存。