摘要: 阅读全文
posted @ 2024-10-29 14:37 qx和世界 阅读(9) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/weixin_44102152/article/details/142205432 阅读全文
posted @ 2024-10-22 08:36 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/weixin_43230594/article/details/139346462 阅读全文
posted @ 2024-10-21 19:22 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一 简述 针对同一事物中的数据一致性问题,即同一事物两次查询数据是否一致,可以分为四个隔离级别 1. 读未提交,可以读取到其他事物未提交的数据,会引起脏读 2. 读已提交,读不到其他事物未提交的数据,但若其他事物改了数据,并提交了,我再次查询,数据是修改后的数据,本事物中两次查询是不一致的 3. 可 阅读全文
posted @ 2024-09-01 20:20 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一 什么是雪崩 某刻redis大量的key值失效,关联一些受理类业务, 大量的并发,如果消费端消费不了,就会导致积压,严重就down了 二 怎么处理 1. 财大气粗型,我压测知道最大的并发多少,直接分配足够的资源,直接吃下 2. 做一些策略,做一些稽核,分配好失效时间,尽量错开时间,避免这种情况发生 阅读全文
posted @ 2024-09-01 12:02 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 简述: 1. redis的持久化机制有两种 AOF 一种是保存写命令,重启时,重放命令,这种方式慢 RDB 一种是定时保存数据, 这种方式可能会丢数据 阅读全文
posted @ 2024-09-01 11:31 qx和世界 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一 简述 1. java是面向jdk编程的,jdk提供的创建线程的接口有Runnable和Callable,这两个接口最大的区别是,Callable有返回值 对于一些业务,业务结束后,需要判断返回值进行后续处理,可以使用Callable 2. 还有一种方式,是创建线程池,从线程池获取线程, 这种方式 阅读全文
posted @ 2024-08-29 12:10 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一 区别 StringBuilder 线程不安全 StringBuffer 线程安全,原因是它的主要方法用了syncronized关键字修饰 二 可以解决的问题 StringBuilder 注意单线程调用,使用效率高 StringBuffer 多线程使用方便,安全,比如记录线程处理顺序,流程管控等 阅读全文
posted @ 2024-08-28 20:51 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一 为什么要有行级锁 解决多线程操作引起的数据安全问题 二 行锁的好坏 好处:安全 坏处:并发效率低 三 行锁的分类 1. 记录锁,锁一行,防止其它线程修改和删除数据 2. 间隙锁,锁一段,不允许其它线程插入数据 3. 临键锁,记录锁和间隙锁的集合 四 如何实现 1. 共享锁(S): 允许一个事物读 阅读全文
posted @ 2024-08-14 18:10 qx和世界 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一 概述 1.悲观锁, 真上锁,只有当前线程可以修改数据,优点是安全,缺点是并发数低 2.乐观锁, 不上锁,代码逻辑实现,基本原理,加个版本号,修改数据会同步修改版号,一个线程修改数据前,先获取版本号,然后使用获取的版本号修改数据,若期间有线程修改数据则版本会变动,那么本线程将不会改到数据,修改结果 阅读全文
posted @ 2024-08-14 17:38 qx和世界 阅读(8) 评论(0) 推荐(0) 编辑