2011-05-31 71 views
3

简单的问题,但不是那么简单的答案。如果我将用户数据存储到会话中,那么我不必从MySQL数据库获取该数据。但那时数据可能会变得过时。如果我只在会话中存储user_id,那么每次都需要向数据库询问用户信息,这可能会导致服务器速度变慢。 如果您有任何建议,请写下来。我应该在会话中存储用户数据吗?

谢谢:)。

+0

向会话中添加一个计数器/计时器以强制以某个设定的时间间隔刷新数据。每X页或每Y分钟。或者对修改缓存数据的数据库版本的任何代码非常小心,并让该代码同时更新会话。 – 2011-05-31 17:40:43

回答

7

通常我只是存储密钥,并且只有在性能成为问题时才开始缓存。只要您开始缓存数据,就会引入由于陈旧数据而导致的错误的可能性 - 您必须确保在您修改数据时使缓存失效。

但是,为了确保我只在每个页面请求中查询一次(除非需要),我会对我的对象的实例执行缓存属性。

相关问题