2

会话或文件缓存?哪个更好用?

例如,当用户登录时,我想保存一些数据,如用户名、密码、id、详细信息等,只要他没有注销。

我可以将这些数据序列化保存在某个文件中。我也可以将它保存在会话中。

我该怎么办 ?

4

3 回答 3

2

将其保存在会话中。它存储在内存中,比文件更快且通常更安全。通常您不会在会话中存储密码,因为一旦用户离开网站,密码就会被删除。密码通常存储在数据库中,有时存储在文件中,但密码应始终加密。使用 md5($password.$email) 或类似的东西。json 数据格式使这变得非常简单。

$user['temp_password'] = md5($user['password'].$user['email']);
$user['id'] = 45;
file_put_contents('user_settings.json',json_encode($user));
于 2013-05-25T19:21:36.523 回答
1

最好的解决方案是使用会话,将会话 save_handler 设置为 memcached。

一、安装memcached

apt-get install memcached
apt-get install php5-memcache

然后,编辑您的 php.ini 以写入 memcached 而不是文件

session.save_handler = memcache
session.save_path    = "tcp://localhost:11211"

最后

sudo /etc/init.d/apache restart

然后,当您读取和写入/写入时,$_SESSION将使用 Memcached

于 2013-05-25T19:26:37.777 回答
1

文件或会话缓存是如此相似,因为会话也写在文件中,但实际上会话更实用,更易于使用,我更喜欢内存缓存,如Mysql Memory Engine或APCU。试一次。

于 2014-05-30T21:46:29.860 回答