求推荐一个 key - value 数据库,数据量可能会上亿。会做查询和删除操作。 顺便再问一下 有没有支持这种数据结构的。
原始的数据如下: (key1->key2->key3)->value 根据上面 3 个 key 加起来才可以查到 value add key4 添加一个 key 的时候变成下面这样 (key1->key2->key3->key4)->value remove key3 删除一个 key 的时候变成这样 (key1->key2->key4)->value 可以很快速的变化 key 。
1 fredcc 2016-11-03 16:38:57 +08:00 直接把 key1-key4 拼接起来做 key 会有问题么 |
![]() | 2 alittletrain 2016-11-03 16:39:19 +08:00 mysql 5.7 支持 json |
3 peter999 2016-11-03 16:40:25 +08:00 pg 也是选项之一 |
![]() | 4 murmur 2016-11-03 16:42:36 +08:00 你这个属于很典型的给 item 打 tag 的功能 这种东西感觉用 lucene 这种倒排索引还快一些 另外,任何数据库删除都是个需要考虑的功能,毕竟涉及重建索引 |
![]() | 5 Kilerd 2016-11-03 16:50:17 +08:00 没看懂,大概就是类似指针这样连来连去?? |
6 forbreak OP 感谢回答,连起来没有问题,如果 key 改变的时候需要数据全部删除在入一遍。 如果有这种直接可以去掉的当然更好点了。 |
7 forbreak OP @Kilerd 只是 key 是有多个不同的值组合成的。 然后可能 key 的值会突然去掉 组合中的某一个值。 或者 集体增加一个值。 value 不变。 |
8 forbreak OP @fredcc 感谢回答,连起来没有问题,如果 key 改变的时候需要数据全部删除在入一遍。 如果有这种直接可以去掉的当然更好点了。 |
![]() | 9 binux 2016-11-03 17:08:14 +08:00 via Android 你这样改来改去,要保证 key 唯一吗 |
![]() | 11 mfu 2016-11-03 17:50:48 +08:00 Redis 吧,序列化到硬盘。 |
![]() | 12 mfu 2016-11-03 17:51:25 +08:00 没看到『数据量可能会上亿』…… |
14 MiskoLee 2016-11-03 18:40:13 +08:00 这不符合目前主流的 KV 数据库定义啊( Key 一般都是一个 String )。 所以,这个轮子就是自己造了。 ==== 自己设计一个 KV 数据库( key 是一个 List )。 这样才可以在语义上满足题目的需求。 |