发布于 1970-01-01 08:00
  • 11 个回答
    • PHP的Memcached的驱动会自动进行serialize和unserialize,你所需要做的是:
      1. 选取一个合适key,比如 "POST_OF_USER_" . $userId
      2. 调用set函数把数据丢进去就行了

      示例代码:

      // 0. 准备:
      $cache = new Memcache();
      $cache->connect('127.0.0.1', 11211); // 请替换为你的memcache服务器地址和端口
      $userId = // 你自己想办法获取...
      
      // 1. 构造cache KEY
      $cacheKey = "POSTS_OF_USER_" . $userId;
      
      // 2. 从缓存中获取数据
      $posts = $cache->get($cacheKey);
      if ($posts === false){ 
          // 3. 缓存失效了,加载数据
          $posts = // 你自己想办法加载数据
      
          // 4. 保存数据到缓存中
          $cache->set($cacheKey, $posts);    
      }
      
      // OK,可以使用posts了
      
      
      2022-12-01 11:48 回答
    • 1.memcache或者redis键值只能是字符串或者整型数组,所以数组必须串行化
      2.serialize,json_encode皆可以串行化
      3.PHP建议用serialize

          $array  = array();
          $string = serialize($array);
          $memcache->set('key',$string);
          $result = $memcache->get('key');
          $result = unserialize($result); 
      
      2022-12-01 11:48 回答
    • array('user1Id'=>array(
                              array('title'=>'帖子1','time'=>'2015-07-08'),
                              array('title'=>'帖子2','time'=>'2015-07-09')
                             ),
             'user2Id'=>array()
            )
      

      这样可否

      2022-12-01 11:48 回答
    • key:prefix + userId
      value:[{"title":"\u5e16\u5b501","time":"2015-07-08"},{"title":"\u5e16\u5b502","time":"2015-07-09"}]

      memcache只支持基本的数据存储,如字符串,不支持复杂结构如map等
      所以结构化的数据,可以串行化后作为值存储。
      串行化的方法有很多,比如json_encode();

      2022-12-01 11:48 回答
    • 数组不用转成字符串,直接存数组就行了

      2022-12-01 11:48 回答
    • 我是使用 json_encode 配合 urlencode 来序列化结果集,之后再保存在memcache中

      2022-12-01 11:48 回答
    • memcache的话,建议序列化或者json_encode成string之后进行存储。redis有更丰富的数据类型,也可以考虑,hashset。

      2022-12-01 11:48 回答
    • 转成json字符串扔进去

      2022-12-01 11:48 回答
    • 你可以直接存数据进去都是可以的,Mecached扩展底层会帮你处理的。

      2022-12-01 11:48 回答
    • 多个用户是多少? 如果是可知的 推荐还是用json_encode()后,存入到memcache中,按三维数组的结构,并不推荐serialize

      2022-12-01 11:48 回答
    • 看看官方示例吧,不需要自己把数组进行序列化:

      
      <?php
      $m = new Memcached();
      $m->addServer('localhost', 11211);
      
      $m->set('int', 99);
      $m->set('string', 'a simple string');
      $m->set('array', array(11, 12));
      /* 'object'这个key将在5分钟后过期 */
      $m->set('object', new stdclass, time() + 300);
      
      
      var_dump($m->get('int'));
      var_dump($m->get('string'));
      var_dump($m->get('array'));
      var_dump($m->get('object'));
      ?>
      

      memcached可以存字符串,数组,对象,整形多种类型,自动序列化。

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