【发布时间】:2017-03-06 11:00:15
【问题描述】:
现在我有一些映射,A->(A1, A2, A3, A4), B->(B1, B2, B3)
我想将 A1、A2、A3... 的过期时间设置为两天,所以我只能在两天内获得添加的值。如果 A 的所有值都过期了,那么键 A 也过期了,应该删除。
什么解决方案或数据库可以实现这个功能? 非常感谢。
################################################# ##-好吧,我应该更详细地描述这个问题。
Couchbase 中存储了很多键值对。键值对是这样的:{id1_20170306-00:01:00 => value1} {id1_20170306-10:01:00 => value2} {id2_20170306-00:01:00 => value3}。所有键值对的过期时间为两天。
当用户发送id1的请求时,所有以id1开头且未过期的键值对都应该返回。
我有一个不是特别好的解决方案。
将密钥转换为一天的开始。对于20170306-00:01:00 和20170306-10:01:00,它是20170306-00:00:00。创建这样的映射
id1_20170306-00:00:00 => (id1_20170306-00:01:00,id1_20170306-10:01:00).
将id1_20170306-00:00:00的过期时间设置为上次修改后两天。
当用户发送对 id1 的请求时,会生成像 id1_20170305-00:00:00 和 id1_20170306-00:00:00 这样的密钥来访问存储在 Couchbase 中的真实密钥。
其实id1_20170306-00:01:00的存活时间超过两天。
【问题讨论】:
-
你说的是哪个 DBMS?
-
@a_horse_with_no_name 任何数据库都可以,只要我能达到这个目标
-
我认为您的问题解决方案与此stackoverflow.com/questions/35407858/… 有关
-
@BrooklynKnightley *"我想将 A1、A2、A3... 的过期时间设置为两天,所以我只能在两天内获得添加的值。如果 A 的所有值已过期,密钥 A 已过期,应删除。”您不会发现任何具有“开箱即用”功能的数据库,您必须对其进行编程。