php 实现 memcache 存储 session 的问题

2016-07-22 11:26:44 +08:00
 lml12377

首先把 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 中数据就被自动删掉了。

2365 次点击
所在节点    PHP
4 条回复
Soar360
2016-07-22 11:31:44 +08:00
Memcache 不适合做 Session 存储,其作者在 Blog 中申明过这个问题。因为用户会无故被踢下线。
sparanoid
2016-07-22 11:39:46 +08:00
可以试下用 redis
wudanyang
2016-07-22 13:12:25 +08:00
我们在用 reids 做 session 存储
lbp0200
2016-07-22 19:21:57 +08:00
用 Redis 做 session ,改下 PHP.INI 就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294145

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX