云笔记设计
1. 设计理念
将云笔记信息分别存储在redis和hbase中。
redis(缓存):存储每个用户的笔记本信息
hbase(持久层):存储用户的笔记本信息、笔记本下的笔记列表、笔记具体信息。
2. 笔记本(notebook)
2.1. redis
key |
Value |
loginName |
List<string> |
List<string>: List<笔记本的rowkey | 笔记本名称 | 时间戳 | status>
例子: List<senfeng_134223232343|aaaddd|1401761871307|0>
2.2. hbase
表名:nb
rowkey : loginName_ timestamp
列簇1:noteBookInfo(nbi):
列:
notebookname(nbn):笔记本名称
createTime(ct):创建时间
status(st):状态
noteList(nl):笔记本下的笔记列表,是个json串(noteRowKey|name| createTime| status)
例如:
|
Rowkey |
列簇nbi |
|||
名称 |
|
nbn |
ct |
st |
nl |
例子 |
senfeng403_1321312312 |
学习资料 |
123123123 |
1 |
{{“json1”},{“json2”}} |
3. 笔记(note)
3.1. hbase
表名:n
RowKey : loginName_timestamp
列簇1:noteInfo(ni):笔记信息
列:
notename(nn):笔记的名字
createTme(ct):创建时间
status(st):笔记状态
列簇2:ContentInfo(ci):笔记本容信息
列:
content(c):笔记内容
例如:
|
Rowkey |
列簇ni |
列簇ci |
||
内容 |
|
nn |
ct |
st |
c |
例子 |
senfeng_1323242113 |
基础知识 |
1323242113 |
0 |
基础知识内容 |
4. 创建hbase表语句
create ‘nb’,’nbi’
create ‘n’,’ni’,’ci’