功能需求
笔记本
- 创建笔记本
- 修改笔记本
- 删除笔记本
笔记
- 新建笔记
- 新建、修改笔记内容
- 删除笔记
回收站
- 删除的笔记进入回收站
- 恢复回收站中的笔记
- 彻底删除笔记
详细设计
- 用HBase存储笔记本、笔记即笔记的具体内容等所有信息
- 用Redis缓存每个用户的笔记本信息,提高系统效率
Redis结构设计
key | value |
---|---|
userid | List |
- useid
:用户登录名称
- List<String>
:笔记本rowkey|笔记本名称|时间戳|status
笔记本表
row key | info:name | info:createtime | info:status | info:notelist |
---|---|---|---|---|
userid_timestamp | 0/1 | {“json1”,”json2”} |
- 表名称:notebook
- rowkey:userid_timestamp
- 列族:info
- 列 name:笔记本名称
- 列 createtime:创建时间
- 列 status:0 可用,1 不可用
- 列 notelist:笔记列表,不包含笔记的详细信息
(noteRowKey|name| createTime| status)
之所以在笔记本表中冗余存储笔记列表的基本信息,是为了提高查询速度,在页面上,笔记本列表从redis中获取,如果不冗余存储笔记列表就需要从笔记表中获取,由于笔记表的数据量会很大,影响查询效率。
笔记表
row key | info:name | info:createtime | info:status | content:ci |
---|---|---|---|---|
userid_timestamp | 笔记名称 | 创建时间 | 0/1 | 笔记内容 |
- 表名:note
- rowkey:userid_timestamp
- 列族:info,基本信息
- 列族:content,笔记详情
- 列 name:笔记名称
- 列 createtime:创建时间
- 列 status:笔记状态
创建表
create 'noteboot','info'
create 'note','info','content'