繁体   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