实现缓存的最佳实践

时间:2013-04-11 04:18:12

标签: database caching

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

哪个数据库最适合此应用程序?一个功能齐全的数据库,如mysql或简单的数据库,如sqlite3?或者是否有更好的方法不使用数据库?

2 个答案:

答案 0 :(得分:2)

文档商店制作。我强烈推荐Redis来解决这个问题。它是一个“键值”存储,意味着它没有关系,它没有模式,它只是映射键到值。这听起来就像你需要的那样。

替代品是MongoDB和CouchDB。环顾四周,看看你最适合的套房。我的推荐仍然留在Redis。

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

答案 1 :(得分:1)

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

MongoDB可用于缓存,但我认为它不像Redis那样适用于纯缓存。 Mongo可以打击磁盘很多。

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