memcached - PHP使用Windows下的Memcache做session_handler莫名其妙丢失
症状
有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 = memcache session.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 = memcache session.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,造成丢失。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

IIS和PHP可以兼容,通過FastCGI實現。 1.IIS通過配置文件將.php文件請求轉發給FastCGI模塊。 2.FastCGI模塊啟動PHP進程處理請求,提高性能和穩定性。 3.實際應用中需注意配置細節、錯誤調試和性能優化。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

Laravel優化Web開發流程的方法包括:1.使用路由系統管理URL結構;2.利用Blade模板引擎簡化視圖開發;3.通過隊列處理耗時任務;4.使用EloquentORM簡化數據庫操作;5.遵循最佳實踐提高代碼質量和可維護性。

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。
