云笔记设计
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’