【发布时间】:2012-12-09 10:22:37
【问题描述】:
在我的项目中,我们为用户提供搜索功能。用户可以在 2 打搜索参数中设置值。在搜索时,我们获取搜索结果并将搜索参数(由用户选择)存储在数据库中(这会导致严重的性能问题),这样下次用户来搜索页面时,他之前的搜索参数就会在页面加载时加载。
我想将搜索参数存储在会话或缓存中(在整个用户会话期间),当用户注销时将它们提交到数据库,而不是在每次搜索时提交到数据库。当用户进入搜索页面时,DAO 检查值首先在缓存/会话中搜索参数,然后尝试从数据库中获取。 任何人都可以为这个问题提出任何解决方案 使用的技术- Spring 3+ Hibernate 3.6 + Tomcat 6 + EHCache +JSP
【问题讨论】:
-
所以你的问题不是缓存。它在搜索结果/存储参数处理中表现不佳。在说“我们需要缓存!”之前修复损坏的东西。分析为什么那部分很慢,并修复它。缓存不是灵丹妙药。
-
让我的朋友冷静下来。如果您了解应用程序的工作原理,我将再次向您解释问题所在。假设用户背靠背进行 15 次搜索,因此我不想将搜索参数写入数据库 15 次以保存搜索参数,而是希望缓存搜索参数并在用户注销时将它们写入数据库(每次将搜索参数输入数据库时)覆盖该特定用户之前保存的搜索参数)
标签: hibernate session caching web-applications spring-mvc