MapDB特性
MapDB是一个内嵌的纯Java的数据库,提供了并发的HashMap、TreeMap、Queue,可以基于堆外或者磁盘来存储数据。用户可以通过配置选择不同的机制来提高性能,比如可以配置多种不同的cache来减少反序列化的开销,提高读取性能;可以开启异步写引擎,使用后台线程来进行序列化和存储更新,来提高插入性能,减少rt。它支持ACID事务、MVCC隔离。它的代码精简,只有一个jar包,无其他依赖,总共才200kb。并且高度模块化,用户可以很容易的扩展,添加新特性。 以下地址为MapDB包的地址:http://download.csdn.net/detail/qy20115549/9686069
数据格式
首先,我来介绍一下数据格式。存在多个文本,每个文本,里面包含电影的id,用户的id及用户对电影的评分,及评分时间。如下面两个表:
这张图为目录下的文本。一个文本表示,一部电影所有用户的评分及评分时间。
目标数据格式
以下程序,将所有文件以用户id:电影id作为key值,用户对电影的评分作为value值,存到MapDB中,并从MapDB中读取数据。以下是读取结果。
程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68package mapdb;
import java.io.File;
import java.util.Map;
import org.mapdb.DB;
import org.mapdb.DBMaker;