2

我必须为处理不同长度的字符串(几个字节到几千字节)的函数实现缓存。我的意图是为此使用数据库 - 基本上是一个带有输入和输出列的大表以及输入列上的索引。缓存将尝试在输入列中查找字符串并获取输出列——这可能是可以想象的最简单的数据库应用程序之一。

什么数据库最适合这个应用程序?像mysql这样的全功能数据库还是像sqlite3这样的简单数据库?或者有没有更好的方法不使用数据库?

4

2 回答 2

2

文档存储就是为此而生的。对于这个特定问题,我强烈推荐 Redis。它是一个“键值”存储,这意味着它没有关系,它没有模式,它所做的只是将键映射到值。这听起来正是您所需要的。

替代方案是 MongoDB 和 CouchDB。环顾四周,看看最适合您的套房。不过,我的建议仍然是 Redis。

阅读: http: //kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

于 2013-04-11T04:23:11.927 回答
1

Joe 对通常用于缓存的数据存储有一些很好的建议。我会说 Redis、Couchbase(虽然不是 CouchDB——根据我的经验,它相当频繁地进入磁盘/没有那么快)和普通的 Memcached。

MongoDB 可用于缓存,但我认为它不像 Redis 那样针对纯缓存进行调整。Mongo 可以相当多地击中磁盘。

此外,我强烈建议使用生存时间 (TTL) 作为您的主要缓存策略。只需给一个值过期的时间,然后再重新填充它。主动在缓存中找到某些数据的所有实例并刷新它是一个非常困难的问题。

于 2013-04-11T18:53:32.190 回答