0

我正在使用 Yii PHP 框架构建一个论坛网站。我还使用 Memcached 进行会话维护和存储一些数据对象。

对于每个用户请求,我必须获取一些用户信息来检查某些事情(检查他是否是特定组的成员以及其他检查)

所以我计划的两种方法是

1) 不要在会话中存储除用户 ID 之外的任何内容,并且在用户会话建立后从 memcached 获取对象并检查它 - 这里有一个用户对象和两次对 memcached 服务器的调用(一个是会话调用,另一个是获取用户目的)

2) 使用setState方法将所有需要的用户信息存储在会话中。成功登录后,用户从会话对象中获取信息并进行检查。这里有两个用户对象,一个在 memcached 中,一个在用户会话中(当然这又存储在 memcached 中)。但是我觉得当会话通过一个电话建立时,我们可以获得用户的所有必需详细信息(真的是这样吗?)

不知道什么是最好的方法。感谢您对此的帮助。

4

1 回答 1

1

从性能的角度来看,这没有什么区别,因为您还将会话保存在 memached 中(至少您是这么说的)。因此,将会话用于此类信息是最合乎逻辑的。否则,您必须为每个用户创建和存储唯一的缓存键 - 这会重新发明会话已经为您所做的事情。

于 2013-10-22T08:40:18.883 回答