求推荐一个 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 )。 这样才可以在语义上满足题目的需求。 |