- 博客(38)
- 收藏
- 关注
原创 MyBatisPlus:IService接口,批处理性能提高,插件使用
Bean//1.初始化核心插件//2.添加分页插件//设置分页上限//后续添加其他插件,在这个Bean对象中添加即可。
2024-10-16 11:06:25
488
原创 MyBatisPlus:自定义SQL
由于SQL不能写在业务层,所以可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分②在mapper方法中使用Param注解声明wrapper变量名称,必须是ew ③自定义SQL,并且使用Wrapper条件
2024-10-10 15:17:05
518
原创 乐观锁处理秒杀超卖问题及悲观锁解决一人一单
实现乐观锁的关键:判断之前查询得到的数据是否被修改过。在执行数据库操作时,增加条件stock > 0。2.CAS法把库存代替版本号(太聪明了)1、版本号法,添加version字段。上述代码会出现超卖问题,
2024-09-25 10:19:35
280
原创 redis:全局ID生成器实现
受订单的数据量限制:若数据量过大,需要多张表存储,若自增会导致id重复。时间戳: 31bit 以秒为单位,可以使用约69年。:在分布式系统中用来生成全局唯一ID的工具。问题:订单id不能设置为自增长的原因。序列号:32bit,秒内的计数量,符号位:1bit ,默认为0。id的规律性太明显,
2024-09-11 16:33:16
706
原创 Redis:缓存击穿
互斥锁实现方式:redis中setnx key value:改变对应key的value,仅当value不存在时执行,以此来实现互斥锁,防止出现锁得不到释放,设置有效期。线程一:未命中之后,获取互斥锁,再查询数据库重建缓存,写入缓存,释放锁。线程二:查询未命中,未获得锁(已由线程一获得),等待一会,缓存命中。线程二:查询未命中,未获得锁(已由线程一获得),返回过期数据。线程一:查询缓存,逻辑已过期,获取互斥锁,开启。:查询数据库并重建缓存,重置逻辑过期时间,释放锁。实现互斥锁相关的方法。
2024-09-11 10:06:11
514
原创 Redis:缓存雪崩
大量的key同时失效或redis服务宕机,导致大量请求直接到达数据库,造成巨大压力。1.给不同的key的TTL+随机数,使其分散在一个时间段内。2.利用redis集群提高redis服务的可靠性。4.添加多级缓存(nginx,jvm等)3.给缓存业务添加降级限流策略。
2024-09-10 14:05:37
192
原创 Redis:处理缓存穿透的两种方法
缓存穿透:客户端请求的数据在缓存和数据库中都不存在,这样缓存永远不能生效,请求都会直接发送到数据库。查完数据库后,将该数据以空值缓存进redis中,同时增加命中时对命中空值的判断。3.增加id的复杂度,防止id规律被猜中。4.做好数据的基础格式校验。5.加强用户权限限制。
2024-09-10 11:37:11
534
原创 黑马点评:redis缓存篇
使用String类型进行缓存:(用户登录验证)使用list类型进行缓存:(商户类型缓存)使用hash类型进行缓存:(商户缓存)
2024-09-08 21:53:31
307
原创 从根本解决:Could not autowire. No beans of ‘RedisConnectionFactory‘ type found.
在配置Redis序列化时,RedisConfig 所在文件夹需要与启动类同级。(回顾注册Bean)
2024-09-03 15:11:38
501
原创 redis命令:sortedSet类型
zragebyscore key min max: 按照score排序后,获取指定score范围的。zrange key min max:按照score排序后,获取指定范围内的元素。:添加一个或多个元素到sortedSet中,若已存在,则更新其score。:让sortSet中指定元素自增,指定步长为incremnt。:查看sortesSet中指定member的score。:获取sortedSet中指定member的排名。:获取sortedSet元素个数。zinter:求交集。zunion:求并集。
2024-09-02 23:26:16
282
原创 redis命令:set
sismeber key member:判断一个元素是否在set中。sadd key member:向set中添加一个或多个元素。srem key member:移除set中的指定元素。scard key:返回set中元素个数。sinter:求key1与key2的交集。smembers:获取set中所有元素。
2024-09-02 09:01:54
341
原创 redis命令:list类型
blpop和brpop:与lpop和rpop相似,只不过在没有元素时等待指定时间,而不是直接返回null。:移除并返回左侧的第一个元素,没有则返回null。: 向列表右侧插入一个或多个元素。:移除并返回列表右侧的第一个元素。:向列表左侧插入一个或多个元素。
2024-09-01 20:18:31
301
原创 redis命令:hash类型
hsetnx:添加一个hash类型的key的filed值,前提是这个filed不存在,否则不执行。hgetall:获取一个hash类型的key中的所有的filed和value。hmget:批量获取多个hash类型key的field的值。hkeys:获取一个hash类型的key中所有的filed。hvals:获取一个hash类型的key中所有的value。:添加或者修改hash类型key的filed值。:获取一个hash类型key的field的值。hmset:批量添加多个hash类型key的。
2024-09-01 19:05:49
213
原创 redis命令:String类型
setnx:添加一个String类型的键值对,前提是这个key不存在,否则不执行。mget:根据多个key获取多个String类型的value。setex:添加一个String类型的键值对,并且指定有效期。incrbyfloat:让一个浮点型的key自增并指定步长。get:根据key获取String类型的value。set:添加或修改一个String类型的键值对。mset:批量添加多个String类型的键值对。incrby:让一个整型的key自增并指定步长。incr:让一个整型的key自增1。
2024-09-01 16:44:12
211
原创 redis命令:通用命令
expire:给一个key设置有效期,有效期到时该key会直接被删除,keys:查看符合模板的所有key,exists:判断key是否存在。ttl:查看一个key的有效时间。del:删除一个指定的key。若不设置则有效期为永久有效。不建议在生产环境上使用。
2024-09-01 16:04:11
482
原创 Dubbo框架(SOA架构的产物)一
并发连接数:指的是 客户端向服务端发送请求,并建立TCP连接,每秒钟服务器连接的总TCP 数。一个事务是指一个客户端向服务器发送请求然后服务器做出反应的全过程称为一个事务。请求数:也称为QPS(Query Per Second)指每秒多少请求。响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。分布式:很多“人”一起,干不一样的事。安全性:提供网站安全访问和数据加密,安全存储等策略。吞吐量:指单位时间内系统能处理的请求数量。并发数:指系统同时能处理的请求数量。集群:很多“人”一起干相同的事。
2024-07-05 19:37:13
355
原创 JAVA基础——注解
/注解的参数:参数类型+参数名();//若默认值为-1,代表不存在String [] schools() default {"建大","建小"};//注解只有一个值,可以使用value命名。
2024-07-02 13:16:22
242
原创 前后端分离(Swagger技术入门)
前后端分离时代:后端:后端控制层,服务层,数据访问层;前端:前端控制层,视图层;前后端如何交互呢?====>API;前后端相对独立,松耦合;产生问题:前后端集成联调,前端人员和后端人员无法做到“及时协商,尽早解决”,最终导致问题爆发;解决方案:早些年:指定word计划文档;
2024-06-25 18:36:58
356
原创 Mybatis_plus性能分析插件
由于是在调试时使用的,要在springboot中将环境配置为dev或者test环境!作用:性能分析拦截器,用于输出每条SQL语句及执行时间。在开发中,会遇到一些慢SQL。只要超过规定时间就会抛出异常。
2024-06-24 23:52:28
363
原创 Mybatis_plus逻辑删除
测试查询 执行的是where xxx AND deleted=0。eg:管理员可以查看被删除的记录,防止数据丢失,例如回收站!1.在表中添加一个deleted字段,初值设为0,表示未删除。逻辑删除:在数据库中没有被移除,而是通过一个变量让他失效。4.在application.yaml中配置逻辑删除。测试删除,发现执行的是Update deleted。2.在实体类中添加对应属性及注解。3.在配置类中注册逻辑删除组件。物理删除:从数据库中直接移除。
2024-06-24 23:25:36
537
原创 Mybtis_plus乐观锁处理
乐观锁:故名思意,十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出来问题,再次更新值测试。悲观锁:顾名思义,十分悲观,它总是认为总会出现问题,无论干什么都会去上锁,再去操作。测试一下Mybatis——plus的乐观锁插件。1.先给数据库加上version列,默认值为1。version:每次更新带一个版本号。2.实体类加对应字段。
2024-06-24 18:53:30
238
原创 Mybatis_plus雪花算法
通过@TableId()中的参选取实现方式。通过选定的实现方式,来生成id。发现自动创建id,并回填id。这个id是如何得到的呢?
2024-06-24 18:01:29
581
原创 重定向之后将Model中的属性传递方法
从Session中读取:在需要使用它的视图控制器方法中,从Session中取出TacoOrder。存储到Session:在创建TacoOrder的请求中,将它存入用户的Session。也可以使用@SessionAttributes注解来指定需要在会话中保留的模型属性。
2024-05-10 13:33:39
190
1
原创 使用idea构建Maven工程中,配置Servlet,报错:没有关联Servlet
servlet>标签和<servlet-mapping>标签中的name明明对应上了,但依然报错没有关联Servlet,3.在弹出的窗口中选择自己的tomcat安装目录下的lib下的servlet-api包。在学习SpringMVC的过程中,发现一个很有意思的BUG,哈哈,其实也不算BUG。2.点击“+”号,再点击java。1.右键项目名,进入模块设置。
2024-03-15 15:36:56
290
1
原创 MC开发,使用idea导入minecraft development插件时,出现插件异常问题
经过作者多次尝试,是idea版本与该插件不兼容问题。解决方案:将idea更新到2023版本。
2023-04-14 08:27:29
717
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人