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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容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
目录
相关文章
|
8月前
|
vr&ar 图形学
2D丨3D元宇宙游戏系统开发详细规则/需求步骤/逻辑方案/源码步骤
Developing a 2D/3D metaverse game system involves multiple aspects, including game design, graphics engines, virtual world construction, social interaction, and economic systems. The following is a summary of a development plan:
|
8月前
|
存储 供应链 安全
dapp系统开发详细规则/玩法功能/案例设计/源码步骤
DApp是指去中心化应用(Decentralized Application),是构建在区块链技术之上的应用程序。与传统的中心化应用不同,DApp不依赖于中心化的服务器或管理者,而是通过智能合约和分布式网络来实现去中心化的运行。
|
8月前
|
安全 AndFix 网络安全
海外版交易所系统开发指南教程/需求步骤/案例详细/源码逻辑
Determine the functional requirements of the overseas version of the exchange system, including user registration, identity verification, trading, deposit and withdrawal, data statistics, etc
|
8月前
|
存储 小程序 安全
东郊到家小程序系统开发|源码部署|案例详情
智能合约是基于区块链技术的一种计算机程序
|
8月前
|
数据安全/隐私保护 iOS开发
使用 appuploder 流程笔记
使用 appuploder 流程笔记
|
8月前
|
自然语言处理 iOS开发
海外短剧系统开发功能指南/案例设计/步骤方案/源码程序
The development of overseas short drama systems needs to consider the following main requirements
|
8月前
|
Go
区域代理分红商城系统开发指南教程/步骤功能/方案逻辑/源码项目
The development of regional proxy dividend distribution mall system involves multiple aspects such as proxy dividend function and electronic mall system development. The following is an overview of the steps for developing a regional agent dividend distribution mall system
|
8月前
|
安全 区块链
区块链游戏系统开发步骤需求丨功能逻辑丨规则玩法丨指南教程丨源码详细
Developing blockchain game systems has been a highly anticipated field in recent years. By combining blockchain technology and game mechanics, players can enjoy a brand new gaming experience and higher game credibility.
|
vr&ar 安全 AndFix
Metaforce佛萨奇系统开发案例详细丨方案逻辑丨项目程序丨规则玩法丨源码功能
Requirement analysis: Communicate fully with customers to understand their specific needs and expectations for the Metaforce Sasage system, including game types, features, art styles, etc
|
敏捷开发 测试技术
推三返一开发稳定版丨推三返一项目系统开发详细指南/方案需求/步骤逻辑/流程功能/案例设计/技术架构/源码程序
推三返一系统开发是一种软件开发模式,也被称为迭代增量开发模式。它是一种敏捷开发方法的一种,通过将整个开发过程分为多个迭代周期,每个周期都会增加新的功能和特性,并在每个迭代周期结束后进行测试、反馈和修改。推三返一系统开发的核心思想是“推进三步,反馈一步”。

热门文章

最新文章