首先把 session.save_handler = user ,注意不是 memcache 。
然后自定义类 Session 实现 SessionHandlerInterface 接口,创建对象,session_set_save_handler 注册,这样每次比如:
$_SESSION['aaa'] = '123';
的时候, php 就会调用通过 Session->write(),函数中我自己人为往 memcache 中插入 sess- 为前缀, session_id() 为后缀的记录,比如: key = sess-4fqrbhed9f3grq4p4ssbljg867 。
这时候有个很奇怪的问题,每次我跟着 $_SESSION['aaa'] = '123'; 这条,去 memcache 中取这个 session_id() 对应的数据时都可以获取到,但是删除 $_SESSION['aaa'] = '123'; 之后 memcache 中数据就被自动删掉了。
1
Soar360 2016-07-22 11:31:44 +08:00 1
Memcache 不适合做 Session 存储,其作者在 Blog 中申明过这个问题。因为用户会无故被踢下线。
|
2
sparanoid MOD 可以试下用 redis
|
3
wudanyang 2016-07-22 13:12:25 +08:00 1
我们在用 reids 做 session 存储
|
4
lbp0200 2016-07-22 19:21:57 +08:00 via Android 1
用 Redis 做 session ,改下 PHP.INI 就可以了
|