发布于 1970-01-01 08:00
  • 8 个回答
    • 不用自己实现memcache session handler. 你装上php memcache扩展,在php.ini里配置下就能使用memcache 存session。

      2022-12-01 15:46 回答
    • session存储在memcache不是配置一下的事情么?怎么变得这么麻烦了。
      php使用 memcache 来存储 session

      2022-12-01 15:46 回答
    • 1:改时间戳试下

      http://php.net/manual/zh/memcache.set.php

      2:session不推介试用memcache存储 ,具体文章自己搜下 参见: memcache 作者 session 关键字

      2022-12-01 15:46 回答
    • 并不是你赋值了就一定会触发写入,php应该在写入之前会判断写入被写入的值是否改变了,这也是很常见的降低写入负载的一种思路,你虽然在不停的赋值,但其实都是同一个值,所以实际session内容并没有改变

      2022-12-01 15:46 回答
    • 你这是PHP5.4以上的写法,我的是PHP5.2的,把session写入memcache,我的是每次都写入,已经测试了,不知道是不是版本的问题,你在write方法里在写入前打印点东西看看执行了吗?

      2022-12-01 15:46 回答
    • memcache用LRU的,不推荐用它来存session

      2022-12-01 15:46 回答
    • ini_set('session.save_handler', 'memcached');
      或者你装了php memcache扩展
      ini_set('session.save_handler', 'memcache');
      ini_set('session.save_path', $memcachePath);

      $memcachePath 是一个字符串,可以拼接起多个memcached服务
      看一下手册,有说明。

      2022-12-01 15:46 回答
    • 按照你现在的写法确实会这样,建议你在session的数据里面加个过期时间,自己续吧。

      ini_set('session.save_handler', 'memcached');使用这种方式有个问题,session的GC是系统控制的,你没办法在逻辑里面控制

      下面是续session时长的思路

      function write(){
      $md->set("xxx",array("uid"=>"xxxx","expire_time"=>自己逻辑的过期时间),memcache数据过期时间 );
      }

      function read(){
      $data = $md->get("xxxx");
      if($data){
      //sesion存在
      $diffTime = time() - $data["expire_time"];
      if($diffTime > 阀值){
      //续session的时间
      }
      }
      }

      2022-12-01 15:46 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有