103 云笔记案例(代码流程分析)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 103 云笔记案例(代码流程分析)

1.笔记本操作

1)创建笔记本
  1. 前台输入笔记本名
  2. 前台向后台传入的参数、笔记本的名字
  3. 后台封装
a. 从session中获取用户名
  b. 创建时间戳
  c.封装rowkey
  d. 保存到redis
          key:用户名
      value:list<rowkey|笔记本的名字|创建时间|状态>
       步骤:
      1、获取jedis连接
      2、jedis.rpush(用户名, rowkey|笔记本的名字|创建时间|状态)
      3、close
   e. 保存到hbase
      rowkey:封装的rowkey
      列:笔记本名字,创建时间、状态
      步骤:
      1、创建表链接
      2、创建put(rowkey)
      3、put.add(列)
      4、table.put(put)
      5、close
  f.事务:
        当redis失败后,所有步骤停止
        当redis成功,hbase成功,即成功
        当redis成功,hbase失败,删除redis的内容(lrem)
2)删除笔记本

1.前台传过来的参数:笔记本的rowkey,笔记本的名字

2.后台:

action查询笔记本下是否有笔记,有笔记返回false

3.删除redis

a. 拼串:rowkey|笔记本名|时间戳|状态
b. jedis.lrem(用户名,删除几次,rowkey|笔记本名|时间戳|状态)

4.删除hbase

a、获取rowkey
b、删除

5、事务:

删除都成功

redis不成功,都不成功

redis成功,hbase不成功,增加redis

3)修改笔记本

1、前台输入:新的笔记本的名字

2、前台向后抬传入的参数:新的笔记本的名字,旧的笔记本的名,rowkey

3、后台的action处理

分割rowkey,获取时间戳,用户名

4、redis

a、拼装旧的串:rowkey|旧的名字|时间戳|状态
b、拼新串:rowkey|新的名字|时间戳|状态
c、删除旧的串:jedis.lrem( 用户名,几次,旧串)
d、加新的串:jedis.rpush(用户名,新串)

5、hbase

通过rowkey设置新的名字
封装put(rowkey)
put.add(新的名字)
table.put(put);

6、事务:

redis成功,hbase成功

redis失败,都失败

redis成功,hbase失败,删除redis的新的名字,添加旧的名字

4)查询用户的所有笔记本

1、前台传过来的参数:空

2、查询redis

a、从session中获取用户名
b、以用户名作为key,去redis查询
c、jedis.lrange(用户名,0,llen(用户名));
d、返回前台

3、如果redis失败,从hbase查

1、获取表链接htable
2、创建rowkey过滤器,前缀是”用户名_*”
3、循环处理结果

2.笔记操作

1)查询笔记本下的所有笔记列表

1、前台传过来的参数:笔记本的rowkey

2、后台处理hbase

a、创建nb表的表链接
b、创建get(笔记本的rowkey)
c、处理result结果集,json
d、将json转换为list
e、处理list中的值,用“|”分割每列,封装到n个note中
f、返回前台
2)增加笔记

1、前台输入的参数:笔记的名字

2、前台传到后台的参数:笔记本的rowkey,笔记的名字

3、action的处理

a、创建时间戳
b、用用户名和时间戳拼装笔记的rowkey

4、后台处理hbase的nb表

将笔记添加到笔记本的笔记列表中

a、获取表链接
b、取出笔记本的历史笔记列表
c、将历史笔记列表中添加新的笔记信息
d、创建put(笔记本的rowkey)
e、put.add(新的笔记列表)
f、close

5、hbase的n表

将笔记的信息存到n表中

3)查询笔记详情

1、前台传到后台的参数:笔记的rowkey

2、后台处理:查询笔记表

4)修改笔记

1、前台输入的参数:笔记的名字,笔记的内容

2、前台向后台传的参数:笔记本的rowkey、笔记的rowkey、新笔记的名字、笔记的内容、旧的笔记的名字

3、修改nb表

a、获取nb表的表链接
b、查询历史的笔记信息
c、将笔记信息装成list
d、拼装旧的笔记信息的串
e、list.remove(旧的笔记信息的串)
f、拼装新的笔记信息的串
g、list.add(新的笔记信息的串)
h、添加操作htable.put().

4、修改n表

重新添加笔记名字和笔记内容

5、事务:

a、nb表失败,都失败
b、都成功
c、nb成功,n失败,还原nb表的笔记列表
5)迁移笔记

1、前台传过来的参数:旧的笔记本的rowkey,新的笔记本的rowkey,笔记的rowkey,笔记的名字

2、后台处理

拼装笔记信息的串

3、修改旧的笔记本

a、将笔记本下的笔记列表查出来
b、删除笔记信息

4、修改新的笔记本

a、将笔记本下的笔记列表查出来
b、添加笔记信息

5、事务:

a、都成功
b、都失败
c、第一个操作成功,第二个操作失败,还原第一个操作
6)彻底删除笔记

1、前台传过来的参数:笔记的rowkey,笔记的名字,笔记本的rowkey

2、后台处理(nb表):

a、拼串
b、获取历史的笔记本的笔记列表list
c、将串从list中删除
d、保存list

3、后台处理(n表):

通过rowkey删除笔记

4、事务:

a、都成功
b、都失败
c、笔记本成功,笔记失败,还原笔记本


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
计算机视觉
挣值管理案例
挣值管理案例。
73 1
|
1天前
|
前端开发 JavaScript 数据安全/隐私保护
优雅实现管理后台403页面:技术细节与实践案例
在管理后台开发中,403页面是一个不可忽视的组成部分。它不仅关系到用户体验,还涉及到系统的安全性。本文将分享如何在管理后台中优雅地实现403页面,以及几个具体的实践案例。
8 2
|
6月前
|
数据安全/隐私保护 iOS开发
使用 appuploder 流程笔记
使用 appuploder 流程笔记
|
6月前
|
安全
短剧系统开发详细指南/步骤流程/功能需求/案例源码
Short film system development refers to the system developed for the production and display of short films. A short drama usually refers to a film completed in a relatively short period of time, usually between a few minutes and half an hour, and is an independent form of film and television work. I
|
6月前
|
自然语言处理 iOS开发
海外短剧系统开发功能指南/案例设计/步骤方案/源码程序
The development of overseas short drama systems needs to consider the following main requirements
|
6月前
|
前端开发 JavaScript NoSQL
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
55 0
|
数据安全/隐私保护
基础项目实用案例
基础项目实用案例
207 2
|
XML 存储 SQL
【C#编程最佳实践 五】项目与代码流程实践
【C#编程最佳实践 五】项目与代码流程实践
169 0
【C#编程最佳实践 五】项目与代码流程实践
|
存储 分布式计算 前端开发
阐述GenZTravel(Z时代)智能合约系统开发方案详细/案例分析/功能详情/源码说明
前端框架:在实现DApp前端界面时,需要选择一个适合的前端框架。当前比较流行的前端框架有React、Vue、Angular等。
|
Linux
嵌入式驱动开发案例实例过程
嵌入式驱动开发案例实例过程
125 0