2013-04-11 258 views
2

我必须为处理不同长度的字符串(几个字节高达几千字节)的函数实现缓存。我的目的是为此使用一个数据库 - 基本上是一个带有输入和输出列的大表格和一个输入列上的索引。缓存会尝试在输入列中查找字符串并获取输出列 - 可能是最简单的数据库应用程序之一。实现缓存的最佳实践

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

回答

2

为此,文件存储为制成。我强烈建议Redis处理这个特定的问题。它是一个“键值”存储,意味着它没有关系,没有模式,它只是将键映射到值。这听起来像你所需要的。

替代品是MongoDB和CouchDB。环顾四周,看看你最好的套房。尽管我的建议仍然与Redis保持一致。

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

1

Joe有针对通常用于缓存使用数据存储的一些好的建议。我会说Redis,Couchbase(不是CouchDB - 虽然它相当频繁地访问磁盘/从我的经验来看并不那么快),只是简单的Memcached。

MongoDB可以用于缓存,但我认为它不像Redis那样是纯粹缓存的调整。 Mongo可以在相当一部分的盘面上出现。

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