Php

HHVM 不使用 memcached 作為保存處理程序?

  • January 26, 2016

我正在使用 HHVM 來提供我的 PHP 內容,並memcached設置了一個實例以將其用作會話的保存處理程序,但是我不確定 HHVM 是否真的在使用它。

這是的相關部分/etc/hhvm/php.ini

session.save_handler = memcached
session.save_path = /tmp/memcached.sock
memcached.sess_prefix = 'php_'

筆記; 我必須使用session.save_handlermemcached而不是memcache原版 PHP 中使用的值。我還必須設置一個,memcached.sess_prefix否則我會收到關於它為空的錯誤。

但是,如果我連接memcached並請求它的統計資訊,它看起來好像根本沒有儲存任何會話memcached

以下是命中/未命中的統計數據:

STAT get_hits 15
STAT get_misses 29

守護memcached程序已經連續執行了幾個星期,因此這些值似乎非常低。事實上,我懷疑它們可能是我在切換到hhvm.

沒有/var/log/hhvm/error.log與 memcached 或會話有關的錯誤,因此它似乎沒有連接失敗,這表明它根本沒有嘗試。雖然如果是這種情況,我不知道會話是如何儲存的,因為它們似乎沒有進入/tmp,但它們似乎確實有效(HHVM/PHP 是否將任何會話數據儲存在 RAM 本身中?)

一切似乎都已正確配置,還有其他需要更改的地方嗎?

似乎 HHVM 根本不支持memcached,即使將保存處理程序設置為“memcached”也不會導致錯誤或警告消息(而memcache報告為無法辨識)。

這很不幸,但我發現 HHVM 的穩定性很差,無法預編譯我的所有腳本,所以我還是改用了 PHP 7。PHP 7 也尚不memcached支持,但有望很快恢復。

引用自:https://serverfault.com/questions/742403