memcached 重启无法缓存

519 查看

问题:

在重启memcached进程之后, memcached的存储和读取异常, 不能存储,也不能读取

解析:

       这要从memcached与php的进程关系说起,php 在第一次运行程序的时候, 连接了memcached服务,在这之后,在后台进程中便有了一个php和memcached关联的进程,即创建了一个连接池,每个php与memcached的连接都会在这个连接池中保持一段时间,这也是为了提高性能的一种方式。

在这种情况下,当memcached重启之后,虽然memcached服务依旧正常,但是其在重启前与php的关联池却依旧还在,所以php的进程中使用的依然是原有的连接服务,但原有的连接服务中的memcached已经不存在了,这就导致了存储与读取的异常。

解决:

重启php-fpm即可