1,session数据通常保存在服务器端的文件中,它的默认过期时间是1440s。我们可以将session数据保存到memcached中,设定memcached的过期时间大于session过期时间即可。这样从内存读取session数据的速度高于从文件读取session数据。
2,session数据如果写入memcached,必须在php.ini中修改session的存取方式和存取路径。
将session.save_handler = files修改为session.save_handler = memcache
将 session.save_path = "C:/Users/58/AppData/Local/Temp"修改为session.save_path = "tcp://127.0.0.1:11211"
重启apache
3,编程测试
<?php /** * Created by PhpStorm. * User: 58 * Date: 2016/8/13 * Time: 17:50 */ session_start(); $_SESSION[‘name‘] = ‘xiaohong‘; echo $_SESSION[‘name‘];
session成功写入缓存,key为SESSION_ID
4,不建议使用memcached存储session,原因有以下两点:
(1)如果用memcached 存储 Session,那么当 memcached 集群发生故障(比如内存溢出)或者维护(比如升级、增加或减少服务器)时,用户会无法登录,或者被踢掉线。
(2)memcached 的回收机制可能会导致用户无缘无故地掉线。因为Memcached 使用“最近最少使用(LRU)”算法回收缓存。
时间: 2024-12-14 13:51:24