Ser*_*sky 1 php mysql caching mongodb redis
我只是有了这个想法,并认为这是一个很好的解决方案,但我问这个方法是否有一些缺点.我有一个经常查询数据库的网页,每页加载3-5个查询.每个查询都会进行十几个(字面上的)连接,然后每个查询结果都用于另一个查询来构造PHP对象.毋庸置疑,即使在云端,加载时间也是荒谬的,但它现在的工作方式.
我想过将已经构造的对象存储为JSON,或者是MongoDB - BSON格式.将MongoDB用作此类缓存引擎会是一个很好的解决方案吗?以下是我认为它将如何工作的示例:
这是使用MongoDB的好方法吗?这种方法的缺点是什么?使用Redis完成此任务更好吗?我还需要NoSQL用于项目的其他元素,这就是我考虑使用这两个中的一个而不是memcache的原因.
MongoDB作为MySQL的频繁连接和查询的缓存有一些信息,但它完全无关紧要.
我认为你最好使用memcached或Redis来缓存查询结果.MongoDB更像是一个完整的数据库,而不是一个缓存.memcached和Redis都针对缓存进行了优化.
但是,您可以将缓存实现为两级缓存.例如,Memcached不保证数据将保留在缓存中.(当存储空间满时,它可能会使数据失效).这使得很难为标记实现系统(例如,您为MySQL表添加标记,然后您可以触发与该表关联的所有查询结果的到期).一个常见的解决方案是使用memcached进行缓存,以及第二个更慢但更可靠的缓存,它应该比MySQL更快.MongoDB可能是一个很好的候选者(只要你可以简单地保持对MongoDB的查询).