我正在开发一个像这样工作的应用程序:
应用程序组件可以(并且将会)在不同的计算机上运行(在同一网络中),因此必须可以从多个主机访问存储。
我考虑过使用memcached,但我不太确定我应该这样做,因为一条记录通常不小于200字节,如果我有1,500,000条记录,我猜它会超过300 MB memcached缓存...但这对我来说似乎不具备可扩展性 - 如果数据量是这个数量的5倍呢?如果它只消耗1-2 GB的缓存来保持迭代之间的数据(很容易发生)?
那么,问题是:哪种临时存储机制最适合这种处理?我没有考虑使用mysql临时表,因为我不确定它们是否可以在会话之间持续存在,并且可以被网络中的其他主机使用...还有其他建议吗?我应该考虑什么?
答案 0 :(得分:1)
我知道这听起来非常老派,但SAN上的临时文件很容易且便宜。
与每次使用300M的缓存相比,在每次运行开始时加载300M文件是微不足道的。
如果你可以从数据库密钥中重新创建它,那么编写和测试该部分并使其自动化是明智的,如果临时文件不可用,则将从密钥中挖掘信息并重新创建。