MongoDB在新版本2.2中有一些东西,可能是有趣的 - TTL Collections.
集合通过特殊索引到期,该索引跟踪插入时间以及后台mongod进程,该进程定期从集合中删除过期文档.您可以使用此功能使副本集和分片群集中的数据到期.
从mongo shell创建TTL集合非常容易 -
db.mycollection.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )
我不能代表其他解决方案.
我认为大多数noSql数据库都支持这个功能,但是例如,cassandra有这个功能:
http://www.datastax.com/docs/1.0/ddl/column_family.
Cassandra可以从这里下载:
但是,如果您仅在到期时使用此类数据库,请考虑使用缓存,因为它完全符合您要执行的操作,特别是如果您的对象生存时间很短.毕竟,缓存的目的是"作为您要临时存储的对象的容器".大多数传统缓存都是Key - Value缓存/数据存储,与大多数NoSql数据库非常相似.
虽然像cassandra这样的nosql数据库通常检索数据的速度非常快,但是如果与传统缓存相比,如果不断添加和删除数据,那么大多数数据库都会表现不佳,并且会增加额外的文件系统和/或网络开销.如果您发现您所需要的实际上是缓存,我可以推荐一些.
是一个非常简单的api的非分布式缓存
http://www.jboss.org/infinispan/
是一个分布式内存缓存/ K,V存储
但是,对于缓存,您可以存储的数量受到限制,因为默认情况下它们位于内存中.他们中的大多数都可以选择在文件系统上存储数据,但如果涉及到这一点,我会使用noSQL数据库.