- 博客(20)
- 收藏
- 关注
原创 Redis 如何应对缓存穿透、缓存击穿、缓存雪崩的问题?key的过期淘汰机制?
缓存击穿? 高并发情况下,某个热门key突然过期,导致大量请求在Redis未找到缓存数据,进而全部去数据库访问,引起 数据库压力瞬间增大。 解决:缓存击穿的情况下一般不容易造成DB的宕机,只是会造成对DB的周期性压力 1.Redis中的数据不设置过期时间,在缓存的对象上添加一个属性标识过期时间,每次获取到数据时,校验对象 中的过期时间属性,如果数据即将过期,则异步发起一个线程主动更新缓存中的数据,(可能会导致拿到过 期的值) 2.为热点数据设置为永不过期,然后加一个互斥锁保证缓存的单线程
2020-09-25 09:16:06 164
原创 Mybatis
框架:将代码进行封装,之后可以重复使用的过程常见的java开发框架Mybatis ORM框架,底层是对jbdc的封装Spring是一个容器SpringMVC分层框架Struts功能类似SpringMVCHibernate功能类似Mybatis03)Mybatis与Hibernate的区别:Mybatis:半自动化,表需要手动进行设计,依赖于数据库平台优点:上手简单(基于原生jd...
2020-04-20 08:39:43 144
原创 数据库(相关内容)
01) 事务:指作为单个逻辑工作单元执行的一组相关操作。这些操作要求全部完成 或者全部不完成(使用事务是为了保证数据的安全有效)02) 特点:1:原子性(Atomic):事务中所有数据的修改,要么全部执行,要么 全部不执行2:一致性(Consistence):事务完成时,要使所有所有的数据都保持 一致的状态, 换言之:通过事务进行的所有数据修改,必须在所有相关的表 中得到反映。3:隔离性(I...
2020-04-18 08:29:11 278
原创 SQL表相关基础
01) rowid:相当于对象的地址,唯一标识每一条记录,在记录插入的时候就已经存在,可以认为成对象的地址02) rownum:结果集的序号,只要有一个结果集,结果集中的每一条数据就可以确定rownum的值,从1开始,每次+103) 试图:建立在表和临时结果集之间的试图04) 应用:当通过复杂的sql,查询到的结果集常常使用,可以存储为一个试图结构,下次直接从试图中获取05) 创建:cre...
2020-04-16 19:58:37 125
原创 SQL简要查询
01) exists () 存在即保留,存在即合法 ()中随意写都可以,一般为select语句,只要当前()中存在数据(结果集),当前判断的数据就可以保留|满足条件02) 日期和字符串之间的转换问题: to_date(日期字符串,转换格式)、to_char(日期对象,转换格式)03) 判定函数:decode(判定字段,校验值1,结果1,结果值2,结果2…,默认值)04) (case 判定字段...
2020-04-15 22:34:04 113
原创 数据库简要查询
01) DQL 查询语句:select 数据(*|字段名1,字段名2,字段名3…) from 数据来源;02) * 代表所有 、’'表示字符串 、null值与数字参数运算,结果null 、字符串拼接用 || 、虚表用 daul03) distinct :查询的结果集中的数据要保证两条数据的所有字段值全部相等才能去重04) 取别名:select 字段值1 (as加也可以,不加也可)...
2020-04-13 23:09:11 130
原创 设计模式、正则表达式
一、 设计模式1:单列模式:01) 只有一个实例,保证当前类的对象只能有一个02) 懒汉式 : 当第一次调用方法获取对象时候,该对象才 创建03) 饿汉式 : 第一次加载类时候,就自动创建该对象04) 实现单例的步骤:构造器私有化公共静态的访问方式(提供一个当前类的对象)私有的静态的该类的引用,存储创建的单例对象05) 饿汉式线程安全,调用效率高、懒汉式线程安全,调用效率不高...
2020-04-11 08:13:02 259
原创 反射、注解
一、 反射1:是一种机制,利用该机制可以在程序运行过程中对类进行解剖并操作类中的方法,属性,构造方法等成员2:以实现以下功能:01) 在运行时判断任意一个对象所属的类;02) 在运行时构造任意一个类的对象;03) 在运行时判断任意一个类所具有的成员变量和方法;04) 在运行时调用任意一个对象的方法;05) 生成动态代理。3:获取类的Class对象三种方式01) Class.for...
2020-04-10 08:31:22 105
原创 网络编程
1:IP:定位节点、区分节点2:端口:01) 区分数据流向的软件02) 2个字节 0~6553503) 统一协议下的端口号不能冲突,且定义越大越好04) 常见的端口号: 预留端口号 8000以下的端口号(80:http、8080:tomcat、1521:oracle、3306:mysql)3:URL: 统一资源定位符4:协议: 交流方式,更加畅通,更加规范,更加标准.5:传输协...
2020-04-08 22:44:01 200
原创 多线程
1:程序、进程与多线程:01) 程序: Java源程序和字节码文件被称为“程序” (Program),是一个静态的概念。02) 进程: 执行中的程序叫做进程(Process),是一个动态的概念。03) 线程: 线程是进程中一个“单一的连续控制流程” (a single sequential flow of control)/执行路径。线程也可以达到同 一份程序产生好几个进程的效果,但是不同的...
2020-04-04 20:48:10 112
原创 容器简要
1:Set接口01) Set 接口中的元素无序不可重复:不包含重复元素,最多包含一个 null,元素没有顺序 。2:HashSet01) HashSet 是 Set 接口的一个子类,主要的特点是:里面不能存放重复元素,而且采用散 列的存储方法,所以没有顺序。这里所说的没有顺序是指:元素插入的顺序与输出的顺序不 一致。 使用重写 equals 和 hashcode 来实现自 定义的类型的去...
2020-04-02 23:00:47 110
原创 容器
1:容量可以随时扩充的容器来装载我们的对象。2:Collection 接口是一组允许重复的对象:01)Set 接口继承 Collection,无序不允许重复,使用自己内部的一个排列机制。 02)List 接口继承 Collection,有序允许重复,以元素安插的次序来放置元素, 不会重新排列。3:方法:01)add(E e)确保此 collection 包含指定的元素(可选操作)。0...
2020-04-02 08:31:25 110
原创 File与Io
一、 日期类1:常用日期相关类:System系统类:currentTimeMillis():当前时间Date日期类:new Date():当前时间 new Date(指定时间):指定时间 getTime()获取时间 setTime(指定时间):设置指定时间SimpleDateFormat格式器:new simpleDateFormat(模板) format():格式化为...
2020-04-01 08:26:54 135
原创 函数式接口、包装类
一、比较器1:对于jdk1.8而言,有三种实现对象比较的方法覆写Object类的equals()方法;继承Comparable接口,并实现compareTo()方法;定义一个单独的对象比较器,继承自Comparator接口,实现compare()方法2:内部比较器:使用Comparable比较器,实现Comparable接口,并重写compareTo方法3:外部比较器:实现Compa...
2020-03-30 22:18:46 196
原创 面向对象简要(4)
一、接口1:说明:特殊的抽象类,是功能的集合(一般指抽象方法)2:定义:01) 静态常量:1: public static final 数据类型 = 赋值;修饰符默认,可以选择性的省略 2: 调用: 接口名|实现类类名|实现 类对象.静态常量名02)抽象方法:1:public abstract 返回值类型|void 方法名();修饰符默认,可以选择性的省略 2:调用: 实现类对象.方法名0...
2020-03-29 16:55:05 120
原创 面向对象简要(3)
一、 面向对象-封装性1:说明:对于程序的合理封装可以让外部的调用更加方便,更加利于编程2:优点:01)提高代码的安全性 02)提高代码的复用性03)封装细节,便于修改内部代码04)简化外部调用,便于使用者使用3:封装的实现:通过访问权限修饰符来控制那些需要进行封装4:权限修饰符:01) private表示私有,只有自己的类才能访问02)default(默认)表示没有修饰符修饰,只能...
2020-03-27 20:23:51 183
原创 面向对象简要(2)
一、 package与import1:package:为了便于管理,解决类的命名冲突问题,Java 引入包(package)机制,提供类的多重 类命名空间2:不需要导包的情况:1)java.lang包下的内容,2)同包下的类3:需要导包的情况:1) 在使用类的时候指定全名(权限定名:包名+类名),只在当前只一次有效2) 使用import导包,import 包名+类名; 作用范围当前整个类中...
2020-03-26 20:17:17 143
原创 面向对象简要(1)
1.说明01):面向对象的方法可以帮助人们从宏观上把握、从整体上分析整个系统,但是具体到微观操作(就是一个个方法)部分的实现,仍需要用面向过程的思路去处理。2.类和对象的关系01):类可以看成是一类对象的模板,对象可以看成是该类的一个具体的实例。3:构造器01):构造器也可以叫构造方法,用于初始化对象。构造器是一个创建对象时被自动调用的特殊方法,用于对象的初始化。02):注意:01)如...
2020-03-25 16:43:58 174
原创 数组
(1)数组的四个基本特点01:其长度是确定的02:其元素必须是同类型的03:可以储存基本数据类型和引用数据类型04:数组变量属于引用类型(2)一维数组的声明方式:01:数据类型[] 数组名称(推荐);数据类型 数组名称[];(3)动态初始化:数据类型[] 数组名=new 数据类型[长度];列: int[] arr = new int[5];(4)静态初始化:01)数据类型...
2020-03-24 21:45:54 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人