簡體   English   中英

用Java和PHP應用程序進行memcached

[英]memcached with a java and php application

我有一個應用程序,它涉及通過Java應用程序每1-2分鍾最多記錄8000個設備的狀態,並將設備ID,時間和狀態存儲在數據庫的表中。

該應用程序的下一個組件是一個PHP界面,該界面顯示這些設備的最新狀態(分配給登錄用戶的狀態,最多可以有500個並發用戶,即每個用戶同時查看16個設備,但平均負載為50-100個用戶)。 該應用程序還將打印有關設備狀態的報告。

我正在考慮在Java應用程序中使用memcached來存儲每個deviceid的最新狀態,然后讓php應用程序僅訪問memcached來填充顯示。 由於先前狀態的報告很少運行,因此仍會從數據庫中刪除。

我的困惑在於決定是否應該將memcached寫入此應用程序,因為memcached的性能顯然是通過每次緩存更新時的多個命中實現的。 每次讀取緩存時,此應用程序可能會有多個更新(但是直接從應用程序而不是數據庫推送)。 但這會將讀取保存在大小合理的(2-3gb)狀態表中。

另外,是否存在從不同語言API寫入/讀取內存緩存的互操作性問題?

您可能已經在RDBMS中內置了有效的多語言跟蹤機制! 它不太可能通過數據庫系統中內置的大量緩存和並發機制來改善。 如果對這些機制進行調整,最好花時間調整SQL以確保最大程度地利用SQL。 (確保SELECT中的並發設置允許“臟讀”,使工作單元(BEGIN TRANSACTION和COMMIT之間的處理盡可能短)等)。

根據對INNODB的注釋,以下命令:

set transaction isolation level read uncommitted;

將允許您在提交之前讀取所有插入的行,並且完全不涉及任何鎖定和並發。 這將提高性能,而不會引起任何問題,因為該應用程序的Java一半僅在插入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM