![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 79
java学僧
这个作者很懒,什么都没留下…
展开
-
Redis缓存穿透、缓存击穿、缓存雪崩区别和解决方案
1、什么是缓存穿透,缓存击穿,缓存雪崩缓存穿透: key对应的数据在数据源并不存在,并且没有的数据也无法从redis缓存中获取,这时所有对这类key的请求都会直接请求到数据源,从而可能压垮数据源;比如一个不存在的商品id获取商品详情,数据库和redis缓存中都没有,每次请求就会去数据库中去查询,若被黑客利用进行攻击,极有可能压垮数据库。代码示例及解决方法:// 一、若key对应的数据在数据源中不存在,我们在redis缓存中存儲为空,//这个空结果的过期时间尽量设置短些,最好不要超过五分钟,避免下原创 2021-02-20 10:29:21 · 314 阅读 · 0 评论 -
Redis持久化过程中,有新写入操作会怎样?----Redis写时复制(copy-on-write)策略
RDB持久化:bgsave触发,Redis调用fork()函数,创建一个子进程(子进程与父进程共内存),子进程执行持久化操作,将内存中的缓存持久化到一个rdb临时文件,待到持久化完成,临时文件替换旧的dump.rdb文件。自此一次RDB持久化操作就完成了。AOF持久化:AOF 持久化时,会将新写入的命令放入aof_buff中,然后检测时间(这个时间就是redis.conf中配置的aof执行频率),再决定是否持久化。当发生aof日志重写时,Redis同样会调用fork()函数,创建一个子进程,对当前内存中.转载 2021-04-21 14:42:01 · 2400 阅读 · 3 评论 -
Redis缓存过期机制,内存淘汰机制
在Redis中有设置过期时间的键值对是如何实现过期删除的呢?在使用redis的时候有没有想过Redis内存不够用的临界点是什么呢?Redis内存不够用时会发生什么呢?Redis缓存过期机制Redis中缓存过期机制包括惰性删除和定期删除:Redis使用的策略是惰性删除+定时删除并用。惰性删除很好理解,所谓的惰性删除其实就是Redis不主动删除过期的键值对,而是在客户端访问的时候去检查该键值对是否过期,若过期,Redis则会删除该键值对并返回null给客户端。惰性删除的情况下,Redis在清除原创 2021-04-21 10:33:27 · 237 阅读 · 0 评论 -
Redis的数据类型及使用场景
redis原创 2021-04-19 17:40:53 · 144 阅读 · 0 评论 -
MySQL事务隔离级别
显而易见,这些存储引擎都是有不同的使用场景的,如果表对事物的要求高,应该使用InnoDB引擎,如果表对事物的要求不高,同时是以查询和添加为主,我们考虑使用MyISAM存储引擎或者MEMORY存储引擎。由于我已经回滚,但是读到了回滚前的数据,造成了脏读步骤5的查询结果:步骤7的查询结果: 事务提交后,再次查询,结果与上一步不一致,产生了不可重复读的问题步骤5执行结果:步骤7执行结果:步骤8执行结果:发现了没,在没有update操作,或者select 上加for update时,是没有出现幻原创 2021-04-19 11:28:13 · 187 阅读 · 0 评论 -
springboot项目中redis客户端(Jedis、Lettuce、Redisson)
一、redis客户端的对比1)、JedisJedis作为Redis官方推荐的一款客户端,也算是简单好用,基础功能齐全,在中小型项目中还是很好用的,但是Jedis是直连模式,在多个线程间共享一个Jedis实例时是线程不安全的。– 为啥不安全呢?不是说Redis是单线程,是世界上最安全的吗?看官不要激动,这里说的不安全不是说Redis处理数据不安全,而是Jedis向Redis服务器提交数据和从Redis上拿数据不安全,简单阅读Jedis的源码就不难发现,在单个Jedis实例中,向Redis推数据的写流(原创 2021-03-25 16:33:14 · 3370 阅读 · 0 评论 -
spring源码构建-IDEA2020.1构建Spring5.2.x源码
spring源码的版本可能会与gradle有不兼容的情况,为了一次成功,不浪费时间在这个小事情上,咋们下spring源码中推荐的版本。1、下载spring源码github下载地址:https://github.com/spring-projects/spring-frameworkgitee下载地址:https://gitee.com/mirrors/Spring-Framework我用的是gitee下载,因为github下载得太慢了!2、查看spring源码推荐版本其实就算我们不配置gradl原创 2021-03-01 08:26:09 · 592 阅读 · 0 评论 -
reids持久化机制(RDB与AOF)
1、数据持久化过程由上图可知:redis发生故障,只要调用了write系统函数就可以完成数据持久化,因为后两步由操作系统完成;但是操作系统发生故障,则必须以上全部步骤都走完才能算持久化完成。2、RDB机制RDB是把数据以快照的形式保存在磁盘上,既每隔一端时间将redis当前内存的数据备份到dump.rdb文件中,这是的dump.rdb文件就相当于这一时刻的快照。对于这个备份的触发机制有三种:save、bgsave、自动化save触发方式:该命令会阻塞当前Redis服务器,执行save命令期间转载 2021-02-07 12:49:09 · 223 阅读 · 0 评论 -
springboot+mybatis-plus实现多数据源配置并使用
所用pom配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org原创 2020-09-06 16:09:54 · 323 阅读 · 1 评论 -
ElasticSearch7.8.0下载与安装
ElasticSearch7.8.0下载与安装1、ElasticSearch7.8.0下载官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch链接: https://pan.baidu.com/s/1wAKQoB3nhLhcnBlPfVOLxQ 提取码: t83n2、解压解压elasticsearch-7.8.0-linux-x86_64.tar.gz到/usr/local/目录:# tar -zxvf elasticsearch-7原创 2020-07-05 15:09:07 · 4974 阅读 · 7 评论