我正在使用memcache进行缓存(显然),这是伟大的。但我也将它用作交叉请求/进程数据存储。例如,我在我的一个网页上进行网络聊天,并使用memcache将在线用户列表存储在其中。工程很好,但它困扰我,如果我不得不刷新整个memcache服务器(无论出于何种原因),我放弃了在线列表。我也用它来保留一些内容的视图记录(然后我定期更新数据库中的实际行),如果我清除了缓存,我将丢失有关视图的所有数据(从最后一次写入数据库)。什么使用,而不是memcache
所以我问的是这个:我应该用什么来代替memcache来处理这种事情?它需要快速,最好将其数据存储在内存中。我认为一些noSQL产品会很适合这里,但我不知道哪一个。我想使用一些我将来可以用于其他用例的东西,想到分析(例如用户搜索最多的是什么)。
我使用PHP,因此它必须具有良好的绑定。
打了我几秒钟。 +1用于redis。有助于它像memcache一样工作,但可以坚持。可能还应该提及它有四种不同的PHP驱动程序。我相信其中一个人会以你喜欢的方式工作。 – lazyconfabulator 2010-09-21 13:05:01
出于好奇:可以使用redis而不是memcache吗?如果是,为什么? – 2010-09-21 13:06:35
Redis是一个完整的持久性数据结构存储守护进程。很像RDMS(没有ACID)。它允许使用许多复杂的数据类型,如列表,集合和有序集合。对我来说,这听起来像是一个很适合你的需求。 – 2010-09-21 13:38:06