缓存通常情况放在持久层还是业务逻辑层,位置的选择通常需要考虑哪些
问题描述:
缓存通常情况放在持久层还是业务逻辑层,位置的选择通常需要考虑哪些
答
普遍情况,使用缓存的场景有如下共性:
1、数据量太大。
2、访问频率高。
3、数据本身很少变更或者根本不变更。
由于每次通过sql访问数据库,都要重新编译并执行sql语句,数据量过大的话执行速度就会较慢,通常为了提高执行的效率,会选择采用缓存机制,把这样一部分需要经常访问、数据更新频率低且数量较大的数据放入缓存存储,所每次查询先去缓存取数,大大节省了时间。至于哪些数据需要经常访问,且数据量较大是根据业务场景来判断的,因此可以这么说,缓存和业务有关,一版持久层讲究和业务低耦合,脱离业务不受太多影响,所以个人建议放业务层比较合适。
答
持久层 业务层逻辑太多
答
持久层吧,业务逻辑层调用接口去进行处理
答
选择持久层吧,需要考虑安全性问题、并发性能问题、数据库性能问题、缓存设置问题
答
两个层都可以分别放缓存或者同时用。主要考虑的因素是,谁读取>写入,或者cpu压力大于内存/磁盘的使用。
答
没有任何条件地说持久层或者业务层,都是瞎掰。
答
各种情况都有,没有一定要这样,或那样,根据项目实际情况,项目规模、前后端框架、代码复杂程度,才能找到合适的方法。
答
越底层就要越纯净,越往上与业务相关越紧密。譬如象MVC很多都是放置在视图里。既然都需要缓存了一定是业务有约束,比如效率问题。你的设置的缓存一定不要影响到其他业务,更不要影响共享的基础设施层。
大的项目都有缓存服务器,缓存只是解决具体的问题。没有缓存不应该影响到业务的正确性和一致性。