php - Memcached不保存生成的数据

标签 php mysql memcached

我得到了以下代码,如果调用的话,它应该将查询数据保存到 Memcached 中,并将其存储在那里 600 毫秒。但每次我加载页面时,$response 都是空的,并且 var_dump 显示 MISS。有什么想法我做错了吗? Memcached 服务器位于端口 11211 上,如 ps aux | grep memcached 告诉我。

$memcache = new Memcached();
$memcache->addServer("127.0.0.1", 11211);
$response = $memcache->get("test");
var_dump($response);
if ($response) {
    var_dump('HIT');
    $result = $response;
} else {
   var_dump('MISS');
   $sql = 'SELECT * FROM test WHERE bla BETWEEN "'.esc_sql($start).'" AND "'.esc_sql($end).'" ORDER BY datumbekanntgabe ASC';

   $result = $this->mydb->get_results($sql);
   $memcache->set("test", $result, 0, 600);
}
return $result;

最佳答案

看起来好像在调用中使用 0 作为超时...

$memcache->set("test", $result, 0, 600);

memcache ,第三个参数 - 0 是用于压缩的flag,而第四个参数是超时,在 memcached 中。虽然这个标志不存在,所以调用应该是

$memcache->set("test", $result, 600);

关于php - Memcached不保存生成的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068392/

相关文章:

php - 将 PDO 对象结果操作到模板中

php - 使用单服务器进行网站开发的 Git

php - 在 symfony 生产中将弃用记录到自己的文件中

php - 在 Laravel 中禁用 session

php - MySQL:简化复杂查询

mysql - brew mysql5.6 mysql_install_db 错误

php - 尝试根据名称将 CSV 加载到 MySql 表中

redis - Redis中的键值设计

java - 存储可以通过调用 url 呈现的二进制数据的理想位置

mysql - Node.js 中的 session 存储首选项