会话或文件缓存?哪个更好用?
例如,当用户登录时,我想保存一些数据,如用户名、密码、id、详细信息等,只要他没有注销。
我可以将这些数据序列化保存在某个文件中。我也可以将它保存在会话中。
我该怎么办 ?
将其保存在会话中。它存储在内存中,比文件更快且通常更安全。通常您不会在会话中存储密码,因为一旦用户离开网站,密码就会被删除。密码通常存储在数据库中,有时存储在文件中,但密码应始终加密。使用 md5($password.$email) 或类似的东西。json 数据格式使这变得非常简单。
$user['temp_password'] = md5($user['password'].$user['email']);
$user['id'] = 45;
file_put_contents('user_settings.json',json_encode($user));
最好的解决方案是使用会话,将会话 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
文件或会话缓存是如此相似,因为会话也写在文件中,但实际上会话更实用,更易于使用,我更喜欢内存缓存,如Mysql Memory Engine或APCU。试一次。