- 博客(33)
- 收藏
- 关注
原创 docker安装tomcat
docker安装tomcat官方推荐:但是这种做法即用完即删除$ docker run -it --rm tomcat:9.0我们可以看到tomat已经启动。正常玩法就是先下载,再去启动。拉取镜像docker pull tomcat:9.0以后台的方式启动tomcat,3355端口映射8080docker run -d -p 3355:8080 --name tomcat01 tomcat访问后发现页面是这样的。为什么是这样的?我们进入tomcat容器看下。dock
2021-06-14 19:31:59
167
原创 两种排序算法,冒泡,快排,二分查找
package com.gaoyz.controller;import java.util.Arrays;/** * @Author soul yzg * @Date 2021/3/22 17:37 * 努力学习 天天进步 */public class Main { public static void main(String[] args) { int[] newStr = {1, 3, 5, -1, 9, 6, 8}; int tmp; .
2021-03-22 21:58:18
114
原创 redis缓存击穿,穿透,雪崩
缓存穿透缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询,发现也没有,于是本次查询失败。当用户有很多的时候,缓存都没有命中。于是去请求了持久层数据库,这就会给数据库造成很大的压力,这就是相当于出现了缓存穿透。解决办法1.布隆过滤器。是一种数据结构,对于所有可能查询的参数以hash形式存储,在控制层进行校验,不符合直接丢弃。从而避免对数据库的压力。2.假设缓存没有命中,设置空值缓存。但是会增加redis内存。即使设置
2021-03-20 21:29:12
182
原创 redis持久化总结
RDB持久化大概运行原理:假设我在redis.conf文件中配置 save 60 5 ,此时代表在一分钟内对redis中的key的修改次数达到5次就会执行一次rdb持久化。这时候会fork一个子进程,用来负责从内存中读取数据然后保存到dump.rdb文件中,而主进程不参与任何的io操作,正常的处理客户端请求。这样子进程持久化完成后会用新的文件替换老的dump.rdb文件。什么时候会触发dump.rdb文件?1.满足配置文件中的配置save 60 5,就会触发持久化,生成rdb文件。.
2021-03-20 18:24:47
226
原创 redis 配置文件记录
Redis配置文件1.units are case insensitive so 1GB 1Gb 1gB are all the same. 大小写不敏感2.包含include多个配置文件3.网络bind 127.0.0.1 #绑定的ipprotected yes #保护模式pory 6379 #端口设置4.通用generaldameonize yes #以守护进程的方式运行,默认是no,以后台方式启动需要打开设置为yespidfile /var/run/r
2021-03-20 16:32:14
194
1
原创 redis事务
redis事务我们之前的概念:事务要么同时成功,要么同时失败,原子性!redis单条命令是保证原子性的,但是事务不保证原子性的!redis事务的本质:一组命令的集合,一个事务中所有的命令都会被序列化,在执行事务的过程中,会按照顺序执行的。一次性,顺序性,排他性执行一些命令redis事务中没有隔离级别的概念。所有的命令在事务中,并没有被执行!只有发起执行的时候才会执行,execredis的事务开启事务(Multi)命令入队(...)执行事务(exec)=========
2021-03-20 13:45:23
109
原创 redis基本数据类型
redis基本命令1.移除具体的key到哪个库 move name 1 将name移到1号库2.置key的失效时间 3.查询key的剩余时间127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> clear127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> set name zsOK127.0.0.1:6379> 127..
2021-03-19 20:38:42
220
原创 Redis简单入门
只是我平时自己的总结。redis是什么?Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis能干嘛?1.内存存储,持久化,内存中断电即失,所以持久化很重要(rdb,aof)2.效率高,可以用于高速缓存。3.发布订阅系统。4.地图信息分析。5.计数器,计时器(浏览量)6....redis.
2021-03-19 18:57:03
284
2
原创 springboot自动装配原理
springboot自动配置的原理加载主配置类,开启自动配置功能@EnableAutoConfiguraionSpringFactoriesLoader.loadFactoryNamespublic static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";以这个配置类做解释表明这个类是一个配置类@Configuration(proxyBeanMethods = fals..
2021-03-18 22:02:40
133
原创 Zookeper+Dubbox
分布式概述早期我们使用单体架构,所有服务都部署在一台服务器的一个进程中,随着互联网的发展,逐步演示为分布式架构,多个服务分别部署在不同机器的不同进程中。zookeeper概述zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅,负载均衡,命名服务,集群管理分布式锁,分布式队列功能。数据一致性用户从银行账号取钱,取钱的操作请求落到db1上,账户总共1000,取完100,更新余额还剩900。此时用户再去查询余额,查询请求落到DB2上,此时正好
2021-03-09 13:30:18
294
原创 HashMap源码分析
HashMap源码1.有参构造方法。//负载因子 static final float DEFAULT_LOAD_FACTOR = 0.75f;//最大容量 static final int MAXIMUM_CAPACITY = 1 << 30; public HashMap(int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); }//用来校验参数loadFactor是不是
2021-02-26 20:58:28
403
2
原创 java容器-List
add()方法 List<Integer> list = new ArrayList<>(); list.add(1);1.没有初始化list指定容量,我们可以看到初始化一个elementData 空数组。2.add操作添加第一个元素,首先执行ensureCapacityInternal方法,minCapacity此时等于1,然后调用ensureExplicitCapacity方法,在执行这一步时候内部又进行了一个计算,调用方法calculateCapacity,参数1
2021-02-25 16:30:44
332
3
原创 SpingBoot中整合过滤器,拦截器
1.整合过滤器Filter配置过滤器1package com.example.springbootdemo.filter;import lombok.extern.slf4j.Slf4j;import javax.servlet.*;import java.io.IOException;/** * @Author soul yzg * @Date 2021/2/24 11:17 * 努力学习 天天进步 */@Slf4jpublic class MyFilter1 impleme
2021-02-24 17:35:31
362
1
原创 java线程池
线程池相关类与接口继承图利用jdk提供的线程池类Executors创建fixedThreadExecutor,cachedThreadPool,scheduledExecutorExecutorService fixedThreadExecutor = Executors.newFixedThreadPool(1);ExecutorService cachedThreadPool = Executors.newCachedThreadPool(FACTORY);ScheduledEx
2021-02-23 17:52:41
224
1
原创 Java-线程池
线程池你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地
2021-02-22 15:31:18
181
2
原创 java&Synchronized总结(下)
synchronized 同步语句块synchronized关键字声明在方法上某些情况下是有弊端的,比如线程A调用同步方法执行了一个长时间的任务,那么B线程必须要等待较长时间,这种情况下必须使用synchronized同步语块句来解决。1.1synchronized方法的弊端输出结果:在使用synchronized关键字声明方法,从运行时间来看,弊端很明显,解决这样的问题使用synchronized同步块1.2 synchronized同步代码块的使用:当两个并发线程访问同一个对象objec
2021-02-18 14:22:12
130
原创 java-简单接口函数回调
接口参数回调记得jdk动态代理里面好像就有类似函数回调的写法。下午在研究rocketmq的顺序发消息又遇到了。那就写个demo演示下。
2021-02-12 20:48:04
301
2
原创 java关键字之-volatile
浅谈volatitle,直接看demo,引出来。package com.second.app.thread.singleton;/** * @Author soul yzg * @Date 2021/2/7 8:22 * 努力学习 天天进步 */public class RunThread extends Thread { private boolean isRunning = true; public boolean isRunning() { retu
2021-02-11 15:36:02
308
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人