背景:现在分布式服务搭建往往需要做session共享,这时候就需要缓存服务器来实现,我这里使用memecache,但是在php7中使用遇到了读写失败的问题
首先要知道memcached在PHP有两个扩展。分别是:
1、memcache
这个是早期的东西,所以现在网上很多资料可能都是以这个来说明的,如果你使用php5的话,用memcache的扩展把session存入memcache缓存服务中一点问题都没有,后面的内容也不需要再看了
2、memcached
如果你使用PHP7版本使用上面的memcache扩展做session存储可能就出现session_start()时读写memcached缓存服务失败
PHP Warning: session_start(): Failed to read session data: memcache()
这时候你就需要php7的memcached扩展来解决了。
define("MEMCACHE_IP", "127.0.0.1:11211"); //修改的地方,需要注意的是地址不能有tcp://
ini_set("session.save_handler", "memcached");
ini_set("session.save_path", MEMCACHE_IP);
配置完后,测试memcached中session读写顺利通过。
最后总结,产生问题的主要原因还是memcache官方没有及时更新兼容PHP7版本。