memcached - PHP使用Windows下的Memcache做session_handler莫名其妙丟失

來源:互聯網
上載者:User
癥狀

有set_session.php和read_session.php兩個檔案。訪問set_session.php,種下session資料。然後訪問read_session.php,發現session資料讀取正常。不論5分鐘後重新整理read_sesion.php還是再在別的檔案訪問,都正常。
但是如果我按住f5鍵(注意是按住),大約5秒後鬆開(也就是說瀏覽器在短時間內重新整理了幾十、幾百次),read_session.php反饋出來的session就為空白。這時拿著session_id去memcache裡找,發現該key存在,但value為空白。

環境

伺服器是Windows Server 2003 32bit。使用XAMPP3.1.0,PHP版本是5.4。PHP配置如下:

session.save_handler = memcachesession.save_path = "127.0.0.1:22003"session.auto_start = 1

MC版本是1.4.4,從http://downloads.northscale.com/memca... 下載的,DLL是http://windows.php.net/downloads/pecl...

詭異之處

我能確定:記憶體肯定沒有滿、沒有任何其他人訪問這台伺服器,也沒有其他應用運行在上面。
完完全全同樣的xampp/php/mc配置,在我本地的windows7(64bit)上面,就沒有任何的問題。如果我把伺服器上的session_handler換成files,也沒有任何的問題。最後我們懷疑是串連數或者win03方面的問題,發現win03在tcp串連上沒有限制,如果是win03核心的問題,我也木有辦法了。。╮(╯_╰)╭

這個問題折騰了一整天,最後決定放棄memcache儲存,等到換到linux再用mc儲存,反正也沒什麼高負載。但是我們用mc儲存其它資料,比如商品啊,分類啊,或者smarty緩衝,都很正常,唯獨session沒法裝進去。

回複內容:

癥狀

有set_session.php和read_session.php兩個檔案。訪問set_session.php,種下session資料。然後訪問read_session.php,發現session資料讀取正常。不論5分鐘後重新整理read_sesion.php還是再在別的檔案訪問,都正常。
但是如果我按住f5鍵(注意是按住),大約5秒後鬆開(也就是說瀏覽器在短時間內重新整理了幾十、幾百次),read_session.php反饋出來的session就為空白。這時拿著session_id去memcache裡找,發現該key存在,但value為空白。

環境

伺服器是Windows Server 2003 32bit。使用XAMPP3.1.0,PHP版本是5.4。PHP配置如下:

session.save_handler = memcachesession.save_path = "127.0.0.1:22003"session.auto_start = 1

MC版本是1.4.4,從http://downloads.northscale.com/memca... 下載的,DLL是http://windows.php.net/downloads/pecl...

詭異之處

我能確定:記憶體肯定沒有滿、沒有任何其他人訪問這台伺服器,也沒有其他應用運行在上面。
完完全全同樣的xampp/php/mc配置,在我本地的windows7(64bit)上面,就沒有任何的問題。如果我把伺服器上的session_handler換成files,也沒有任何的問題。最後我們懷疑是串連數或者win03方面的問題,發現win03在tcp串連上沒有限制,如果是win03核心的問題,我也木有辦法了。。╮(╯_╰)╭

這個問題折騰了一整天,最後決定放棄memcache儲存,等到換到linux再用mc儲存,反正也沒什麼高負載。但是我們用mc儲存其它資料,比如商品啊,分類啊,或者smarty緩衝,都很正常,唯獨session沒法裝進去。

Memcached在session數超過一定值後不適合用來儲存session。

Memcache採用slab記憶體預分配,固定長度key的數量是有限的,如果數量佔滿會依據LRU刪除key,造成丟失。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.