摘要: 在实际开发过程中,经常会使用目录结构(层级结构),最常见场景是评论列表,还有的就是在后台中我们的权限管理以及其他管理中都会用到,下面我来介绍一下使用递归的方法来生成一个目录树。 首先,我们需要将符合条件的所有元素查询出来,在这里我们的元素就是FileClass,查询出来后使用List接收。 然后,对 阅读全文
posted @ 2023-05-15 18:49 ClearRain 阅读(33) 评论(0) 推荐(0) 编辑
摘要: BIO 通常在进行同步IO操作时,如果读取数据,代码会阻塞直至有可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户端请求。这种模式带来的一 阅读全文
posted @ 2022-11-16 22:57 ClearRain 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 基于 Redis 实现分布式锁 基于Redis实现分布式锁 阅读全文
posted @ 2022-11-08 15:31 ClearRain 阅读(88) 评论(0) 推荐(0) 编辑
摘要: Redis缓存击穿,如何解决 redis在项目中主要用来抵挡客户端流量,防止服务在处理大量请求时给数据库造成过大压力导致宕机。 原因:缓存击穿就是某一个访问非常频繁的热点数据过期失效导致数据无法从缓存中获取,大量请求直接打到数据库,数据库压力激增。 处理方案:热点数据不进行过期设置 Redis缓存雪 阅读全文
posted @ 2022-11-07 21:07 ClearRain 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-07-19 00:13 ClearRain 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 索引数据结构 索引为什么会失效 如何通过索引查找一条数据 阅读全文
posted @ 2021-07-18 12:16 ClearRain 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 线程安全的定义 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么就称这个对象是线程安全的。 final修饰的变量只要成功的创建出来,那么外部的可见状态永远不会变。 阅读全文
posted @ 2021-07-16 20:44 ClearRain 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 实现分布式锁首先要保证这把锁不能使某个客户端本地的锁,不然其他客户端拿不到这把锁。 分布式锁可以和单机上的加锁释放锁操作一致,加锁时候同样需要判断锁变量的值,根据锁变量的值来判断能否加锁成功;释放锁的时候将锁变量的值设置为0,表示客户端不再拥有锁。和单机系统不同的是,分布式锁需要一个共享存储系统来维 阅读全文
posted @ 2021-07-16 16:38 ClearRain 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 根据Mysql版本的不同来进行分析 mysql4.0 varchar(100) 表示100个字节 mysql5.0 varchar(100) 表示100个字符,无论英文还是汉字都可以存储100个 UTF8下1个汉字为3个字节 一个字符 varchar(100)与varchar(10)的区别 这两者存 阅读全文
posted @ 2021-07-16 16:02 ClearRain 阅读(4349) 评论(0) 推荐(0) 编辑
摘要: 一致性问题主要包含两种情况 缓存中有数据,那么缓存中的数据需要和数据库中数据的值相同 缓存中本身没有数据,那么数据中的值必须是最新值 除此之外就是缓存不一致问题了 解决一致性问题首先要根据缓存读写模式(读写缓存、只读缓存)来进行分析 读写缓存(对缓存进行增删改)时有两种方法 同步直写 写缓存时也同步 阅读全文
posted @ 2021-07-16 15:34 ClearRain 阅读(948) 评论(0) 推荐(0) 编辑