redis知识点+redis在spring boot中实战

Redis 事务核心命令:MULTI、EXEC、DISCARD

Redis 事务通过三个核心命令实现:

MULTI:标记事务开始。 发送后 Redis 不再立即执行后续命令,而是将其入队。

命令入队 (Queuing): 在 MULTI 之后的命令不会立即执行,被放入内部队列。Redis 对入队命令进行语法检查,语法错误会标记该事务为错误事务,但事务不会立即终止。

EXEC:执行事务。

如果事务在入队阶段被标记为语法错误,Redis 拒绝执行整个事务,返回 EXECABORT 错误。

如果事务未被标记为错误,Redis 按顺序、一次性地执行队列中所有命令。执行期间 Redis 是阻塞的,不会处理其他客户端的命令。

DISCARD:取消事务。 清空命令队列,退出事务状态。

核心:MULTI 只是将命令入队,并不会执行。命令在 EXEC 时才真正执行。这意味着如果客户端在 MULTI 和 EXEC 之间连接断开,队列中的命令将永远不会被执行。

Redis 的高速是所有因素协同作用的结果:

内存是基础,消除了磁盘延迟。

高效数据结构确保单个命令执行的微观速度(O(1) 或 O(log N))。

单线程模型消除了锁和切换开销,保证命令执行的纯粹高效。

I/O 多路复用让单线程能同时"照看"大量客户端。

简洁协议和C 语言保证数据传输和底层执行的效率。

子进程/后台线程分担了耗时的 I/O 和删除操作,保证主线程流畅。

Spring Boot 整合 Redis 基础实战

需求:页面上有一篇文章,访问(刷新)一次,阅读数+1

前端

1>编写页面

2>思考:数据存在前端还是后端?存在后端,因为前端不同浏览访问数据都叠加,

也就说不同浏览器访问都是同一个数据,也就可以确定数据再后端存储。

每次访问,刷新,发起请求向后端获取叠加后数据,将响应的数据显示在页面上

后端

1>接收前端发起请求,执行数据叠加,将结果返回前端。思考:要叠加访问数据存在哪里?mysqlredis,此次使用redis

代码于7月1号更新