随笔 - 530
文章 - 0
评论 - 3
阅读 -
10098
随笔分类 - linux
1
内部调用@Transactional 注解的方法
摘要:当客户端代码调用某个带有 @Transactional 注解的方法时,调用实际上是通过代理对象进行的 当同一个类中的普通方法直接调用另一个 @Transactional 方法时,调用是类内部发生的,而不是通过代理对象 解决办法: 1. 外部调用(依赖注入,然后调用). 2. aopcontext.g
阅读全文
epoll ----多路复用
摘要:epoll是 多路复用的一个实现 linux内核提供了epoll : epoll_ create () epoll_ ctl () epoll_wait () 1. 使用红黑树帮助组织fd ,fd的 crud 很高效 2. io事件准备完毕的监测? poll 回调机制: fd 告诉epoll准备完毕
阅读全文
mybatis 记录
摘要:嵌套对象映射 <resultMap id="userResultMap" type="com.example.User"> <id property="id" column="user_id"/> <result property="name" column="user_name"/> <resul
阅读全文
解决spring循环依赖:三级缓存
摘要:1. 完全初始化的单例对象缓存(singletonObjects) 功能: 这个缓存用于存储已经完全初始化并可以使用的单例 bean 实例。 存储内容: 当一个 bean 完成初始化,包括所有的依赖注入和后处理之后,它会被放入这个缓存中。之后,对该 bean 的请求将直接返回这个缓存中的实例。 2.
阅读全文
spring aop记录
摘要:使用: import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.an
阅读全文
jdk动态代理
摘要:代理机制: 1. 创建代理对象, Proxy.newProxyInstance 时,JVM 会: 生成代理类的字节码:使用字节码技术生成一个代理类,该代理类实现了所提供的接口。这种代理类继承自 java.lang.reflect.Proxy 并实现了指定的接口。 动态加载代理类:将生成的代理类加载到
阅读全文
undolog redolog binlog 记录
摘要:binlog记录了所有修改,没有查询相关 对一条记录进行操作(cud),就记录回滚需要的信息: 比如插入一条记录时,记录下主键,方便回滚时删除 redolog : 保证了持久性,⚠️内存不可靠 更新记录时,先修改内存,然后记录redolog; 后续找时机同步到磁盘 事务提交时,将 redo log
阅读全文
两阶段提交 , TCC 记录
摘要:事务协调者(PM) , 事务参与者(TM) 两阶段提交分为 1. 准备(prepare) pm发消息询问所有TM是否都准备好: 各个tm做本地事务的预操作(如写日志),不提交 回复pm 1. yes:准备好了 2. no: 没准备好 2.提交(commit) tm: 根据yes或者no,发消息通知所
阅读全文
mysql 锁 记录
摘要:表级别锁 1.表锁 lock tables xx read. 线程只能读 lock tables xx write 其他线程无法读写 2.MDL锁(元数据锁 MDL 是为了对表执行 CRUD 操作时,防止其他线程对这个表结构做了变更 ,反之亦然 注意 MDL 是在事务提交后才会释放, 因此长事务可能
阅读全文
主从复制 记录
摘要:大事务或资源密集操作:强制走主库 master写binlog,提交事务 ; slave 开一个 io线程 读取master binlog, 存储到 中继日志 relay log ,然后读取日志同步数据 实现MySQL主从复制需要进行的配置 MySQL 主从复制的简单步骤如下: 在主服务器上创建复制用
阅读全文
两阶段提交中的 redo log 和 binlog 关系
摘要:MySQL 的 InnoDB 存储引擎使用 两阶段提交 来协调 redo log 和 binlog 的写入顺序,确保事务的一致性。具体过程如下: 准备阶段(Prepare Phase): InnoDB 将事务修改写入 redo log,但此时 redo log 处于 prepare 状态,表示事务的
阅读全文
mvcc 实现的一些记录
摘要:使用read_view(创建事务时候生成) 和 undo_log undo_log 记录了 某个记录的历史版本 包括 trx (最后一次执行修改的事务), pointer 隐藏字段 比如现在某个事务查看一条记录 ,用该记录的trx 对比read_view ,如果read_view对 trx 不可见
阅读全文
redis key
摘要:如何处理 bigkey? 1. 监控 +手动清理:Redis 4.0+ 可以使用 UNLINK 命令来异步删除一个或多个指定的 key。 2.渐进式删除 Api如 list strim set srem hash hdel 3..分割 bigkey:将一个 bigkey 分割为多个小 key 比如一
阅读全文
Lua 脚本在 Redis 中能够保证操作不会被其他指令插入或打扰 ??
摘要:Lua 脚本在 Redis 中能够保证操作不会被其他指令插入或打扰,主要通过以下机制实现: 1. Redis单线程模型 2. 脚本执行锁定 当执行 Lua 脚本时,Redis 会自动锁定所有在脚本中访问的键。这个过程可以分为几个步骤: 获取锁:在脚本执行前,Redis 会检查脚本中访问的键。如果有键
阅读全文
nano编辑器基本使用
摘要:
编辑文本: 当文件打开后,您可以使用键盘输入文本。Nano 提供了一些常用的编辑功能,如复制、粘贴、撤销等。常见的键盘操作包括: 使用箭头键移动光标。 使用 Backspace 键删除字符。 使用 Delete 键删除字符。 使用 Ctrl + O 将更改保存到文件。 使用 Ctrl + X 退出
阅读全文

git 简单使用
摘要:ssh: git init git commit -m "first commit" git branch -M master git remote add origin git@github.com:user/xxx.git git push -u origin main
阅读全文
一些命令
摘要:ls, ls-a cp [src] [dest] rm [-r] [dir] scp tar 解包: tar -xvf *.tar 压缩包: tar -cvf *.tar A Windows ssh: ssh (user)@(ip)
阅读全文
VMware虚拟机设置主机代理
摘要:VMware ubuntu 走本机代理 | Yumi's Blog (yumi1.top)
阅读全文
1