- 博客(95)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 docker 容器打包镜像并上传
docker tag 本地镜像名:版本号 dockerhub用户名/仓库名:版本号。docker login 然后依次输入docker用户名,密码.docker push dockerhub用户名/仓库名:版本号。docker commit 容器名 想要创建的镜像名:版本号。4、本地端链接本地镜像与仓库。2、docker 登录账号。5、push本地镜像到仓库。
2023-04-27 10:18:00 427 1
原创 Linux 安装mysql
1. 执行以下命令,下载并安装MySQL官方的Yum Repository。6. 执行以下命令,授予root用户远程管理权限。2. 执行以下命令,启动 MySQL 数据库。3. 执行以下命令,查看MySQL初始密码。5. 执行以下命令,修改MySQL默认密码。4. 执行以下命令,登录数据库。7. 输入exit退出数据库。
2022-09-14 16:39:52 146
原创 Docker 运行SpringBoot并绑定Redis
5、docker network create --subnet=xx.xx.xx.0/24 netBridge (网桥名称) ----创建网桥。3、docker build -f dockerfile -t imageName(镜像名):1.0 . 创建镜像。4、docker pull redis:5.0.8 下载redis:版本号。2、制作dockerfile文件。1、先打包java工程为jar。使用maven打包或者idea。
2022-09-11 13:34:31 566
原创 Docker 网络
因为docker0,默认情况下不能通过容器名进行访问。需要通过–link进行设置连接。这样的操作比较麻烦,更推荐的方式是自定义网络,容器都使用该自定义网络,就可以实现通过容器名来互相访问了。下面查看network的相关命令1查看默认的网络bridge的详细信息查看 network create命令的相关参数下面自定义一个网络1--driver bridge #指定bridge驱动程序来管理网络--subnet 192.168.0.0/16 #指定网段的CIDR格式的子网。
2022-09-10 16:01:33 2695
原创 Docker file
Dockerfile是用来构建Docker镜像的文本文件,也可以说是命令参数脚本。命令用于从Dockerfile构建镜像。可以在命令中使用-f标志指向文件系统中任何位置的Dockerfile。
2022-08-31 20:38:09 192
原创 docker 数据卷
Docker将运用与运行的环境打包形成容器运行, Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,如果容器删除后,数据自然也就没有了。使用数据卷能保存Docker容器的数据|总结:容器的持久化和同步操作,容器间也可以数据共享卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。数据卷可在容器之间共享或重用数据卷中的更改可以直接生效数据卷中的更改不会包含在镜像的更新中。...
2022-08-30 21:23:40 3179
原创 Docker 命令
命令的帮助文档地址:https://docs.docker.com/engine/reference/commandline/docker/因为通常我们的容器都是使用后台方式来运行的,有时需要进入容器修改配置。docker attach 进入容器正在执行的终端,不会启动新的进程。docker exec 进入容器后开启一个新的终端,可以在里面操作。10.4.4 进入当前正在运行的容器。10.4 2 查看容器中进程信息。10.4.3 查看容器的元数据。运行并进入容器centos。查看本地主机的所有镜像。....
2022-08-28 16:56:30 341
原创 RabbitMQ 特性
1、设置队列过期时间使用参数:x- message-ttl,单位毫秒,会对整个队列消息统一过期2、设置消息过期时使用参数: expiration。单位毫秒,当该消息在队列头部时(消费时),才会单独判断这一消息是否过期3、如果两者都进行了设置,以时间短的为准。......
2022-08-10 15:41:29 341
原创 RabbitMQ linux安装
选择自己需要的,点击,我使用的是CentOS8,所有使用的是el8,CentOS7需要使用el7。默认情况只能在 localhost本机下访问(见下图),所以需要新增一个远程登录的用户。下面依旧通过wget命令完成RabbitMQ的下载。默认情况下,是没有安装web端的客户端插件,需要安装才可以生效。6. 赋予其administrator角色。版本号后,先下载安装Erlang环境。此时,Erlang的rpm包下载完成。最后,使用 yum 进行本地安装(接着,安装已下载的rpm包。3. 启用web插件。...
2022-08-07 15:33:00 735
原创 JUL简介
JUL全程 Java Util Logging,它是java原生的日志框架,使用时不需要另外引用第三方的类库,相对其他的框架使用方便,学习简单,主要是使用在小型应用中。
2022-06-29 00:02:27 1341
原创 端口占用解决
端口占用解决(先查pid,根据pid停止进程)查询端口所在的进程id(pid)netstat -ano | findstr (端口号)根据pid停止进程taskkill /f /pid (pid号)
2022-06-16 15:32:54 65
原创 正则表达式基础
ab+c(ab)+b现1或多次ab现1或多次ab{5}cab{2,}b出现5次b出现2次以上\d\D\d 等同于[0-9]\D一个数字字符非数字字符\w\W\w\W所有的英文字符,数字,下划线非英文字符,数字,下划线\s\S\s\S空格符,tab,换行符非空格符,tab,换行符.*..*.任意字符,但不包含换行符代表任意字符,但不包含换行符^$^a$a匹配行首为a匹配行尾为a[abc]+[a-z]+[0-9A-Z]+[^0-9]+只能包含abca-c数字和大写字母非数字123456......
2022-06-12 14:48:40 126
原创 Mybatis SqlSessionFactory和SqlSession
SqlSession是用来操作xml文件中sql语句,每次操作数据库我们都需要一个SqlSession对象SqlSession用来和数据库中的事务进行对接的,所以SqlSession里面包含了事务隔离级别等信息。SqlSession实例是线程不安全的,故最佳的请求范围是请求(request)或者方法(method)。SqlSession也是一个接口,有两个实现类:DefaultSqlSession和SqlSessionManager。...
2022-06-03 21:07:43 458
原创 Spring + Mybatis+事务
SM配置SqlMapConfig.xml<configuration> <!--设置日志输出语句,显示相应操作的sql语名--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings></configuration>mapper.xml<?xml version="1.0" encodin
2022-05-22 15:05:07 532
原创 MyBatis
什么是三层架构在项目开发中,遵循的一种形式模式.分为三层. 1)界面层:用来接收客 户端的输入,调用业务逻辑层进行功能处理,返回结果给客户端.过去的servlet就是界面层的功能. 2)业务逻辑层:用来进行整个项目的业务逻辑处理,向上为界面层提供处理结果,向下问数据访问层要数据. 3)数据访问层:专门用来进行数据库的增删改查操作,向上为业务逻辑层提供数据. 各层之间的调用顺序是固定的,不允许跨层访问. 界面层<------->业务逻辑层<------>数.....
2022-05-19 20:19:30 715
原创 JVM 笔记
jvm运行在操作系统上jre:java开发环境,里面包含JVMjava程序运作在jvm上jvm是c写的,java又称c++--JVM 的体系结构java文件转成.class文件,如何通过类加载器进行加载,百分之99的JVM调优都是在方法区和堆(99%是堆)中调优Java栈、本地方法栈、程序计数器 是不会有垃圾存在的。类加载器 类是模板,是抽象的(对象是具体的),类实例化...
2022-05-16 17:11:47 590
原创 排序算法
选择排序从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。 public static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int k = 0; for (int j = i + 1; j <
2022-05-15 21:03:44 157
原创 SpringMVC 访问
127.0.0.1:8080/add?a=1&b=2@RequestMapping("/add")public String add(int a, int b){}127.0.0.1:8080/add?a1=1&a2=2@RequestMapping("/add")public String add(@RequestParam("a1")int a,@RequestParam("a2")int b){}127.0.0.1:8080/add/1/2...
2022-05-15 20:20:46 193
原创 MySQL 索引
索引1、什么是索引?有什么用?索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。 在数据库方面,查询一张表的时候有两种检索方式:第一种方式:全表扫描 第二种方式:根据索引检索(效率很高) 索引为什么可以提高检索效率呢?其实最根本的原理是缩小了扫描的范围。 索引虽然可以提高检索效率,但是不能随意的添加索引因为索引也是数据库当中的对象,也需要数据库不断的维护...
2022-05-08 18:53:39 294
原创 volatile关键字
一、volatile关键字的作用 1、保证变量写操作的可见性; 2、保证变量前后代码的执行顺序;Volatile 是 Java 虚拟机提供 轻量级 的同步机制 1、保证可见性 2、不保证原子性(volatile关键词不能取代synchronized关键词,因为volatile关键词不能保证操作的原子化) 3、禁止指令重排二、volatile的底层原理首先要知道 线程:数据读取顺序优先级 :寄存器-高速缓存-内存。...
2022-05-07 19:03:01 930
原创 单例模式
单例模式基本定义:程序运行时,在java虚拟机中只存在该类的一个实例对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。饿汉式构造器私有化(不可被 new) 类的内部创建对象(类初始化时立刻实例化,可能会浪费内存) 对外部暴露一个静态的公共方法 getInstance/** * 饿汉式单例模式 */public class ClassA { //1.私有化构造方法,外部不能...
2022-05-06 21:04:51 254
原创 JUC(十一) 锁
各种锁的理解公平锁,非公平锁公平锁:非常公平,不能插队,必须先来后到public ReentrantLock() { sync = new NonfairSync();}非公平锁(默认):非常不公平,允许插队,可以改变顺序public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync();}可重入锁(递归锁)Synchonized.
2022-05-06 20:12:12 202
原创 JUC(十) CAS
深入理解CASCAS: compareAndSet 比较并交换 // 期望, 更新 // public final boolean compareAndSet(int expect, int update) // 如果我期望的值达到了,那么就更新,否则,不更新。CAS 是CPU的并发原语public class CASDemo { // CAS: compareAndSet 比较并交换 public static void main...
2022-05-06 19:39:40 165
原创 JUC(九) 单例模式
单例模式静态内部类// 静态内部类public class Holder { private Holder(){ } public static class InnerClass { private static final Holder HOLDER = new Holder(); } public static Holder getInstance() { return InnerClass.HOLDER;
2022-05-06 19:14:10 91
原创 JUC(八) JMM volatile
对Volatile 的理解Volatile 是 Java 虚拟机提供 轻量级 的同步机制 1、保证可见性 2、不保证原子性 3、禁止指令重排什么是JMM?JMM:JAVA内存模型,不存在的东西,是一个概念,也是一个约定!关于JMM的一些同步的约定: 线程解锁前,必须把共享变量立刻刷回主存; 线程加锁前,必须读取主存中的最新值到工作内存中; 加锁和解锁是同一把锁;上面这图画错了,Store要在Write前面8种操作如下:...
2022-05-06 17:11:11 378
原创 JUC(七) 异步回调
Future 设计的初衷:对将来的某个事件结果进行建模!类似于ajax没有返回值的runAsync异步回调public class FutureDemo { public static void main(String[] args) throws ExecutionException, InterruptedException { // 发起一个请求 CompletableFuture completableFuture = Completabl.
2022-05-06 16:24:35 194
原创 JUC(六) 四大函数式接口和ForkJoin
四大函数式接口lambda表达式,链式编程,函数式接口,Steram流式计算函数型接口Function 函数型接口函数式接口:只有一个方法的接口传入参数T,返回类型R只要是函数式接口,就可以用lambda表达式简化public class FunctionDemo { public static void main(String[] args) { /*Function<String,String> function = new F.
2022-05-06 15:40:33 704
原创 JUC(五) 线程池
线程池池化技术及线程池的使用程序的运行,本质:占用系统的资源!优化资源的使用线程池,连接池,内存池,对象池池化技术:事先准备好一些资源,有人要用就来拿,用完之后归还线程池的好处1.降低资源的消耗2.提高响应速度3.方便管理线程可以复用,可以控制最大并发量,管理线程线程池:三大方法,7大参数,4种拒绝策略线程的三大方法 线程池不建议使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式更加明确...
2022-05-06 15:07:58 123
原创 JUC(四) 读写锁ReadWriteLock,阻塞队列BlockingQueue,同步队列SynchronousQueue
目录读写锁ReadWriteLock阻塞队列(Array/Linked)BlockingQueue什么情况会使用阻塞队列?四组API1.抛出异常2.不会抛出异常3.等待阻塞(一直阻塞)4.等待超时同步队列(SynchronousQueue)读写锁ReadWriteLock读的时候可以被多线程同时读,写的时候只能有一个线程去写。独占锁(写锁):一次只能被一个线程占有 共享锁(读锁):可以被多个线程同时占有 读-读:可以共存 读-写:不能共存 写-写:
2022-05-05 20:53:59 363
原创 JUC(三) Callable和 常用的辅助类
Callable官方文档:Callable接口类似于Runnable ,因为它们都是为其实例可能由另一个线程执行的类设计的。 然而, Runnable不返回结果,也不能抛出被检查的异常。可以有返回值 可以抛出异常 方法不同,run() / call()调用CallableFutureTask futureTask = new FutureTask<>(c); //适配类 new Thread(futureTask,"A").start();publ...
2022-05-05 20:16:08 151
原创 JUC并发(一)
目录线程和进程并发、并行线程状态wait/sleep区别LOCL锁(重点)1 传统的synchronized锁2 Synchronized和Lock锁的区别synchronized写法lock Condition写法锁是什么,如何判断锁的是谁小结线程和进程进程:一个进程往往可以包含多个线程,至少包含一个! Java默认有几个线程? 2 个 :mian、GC。线程:开了一个进程 Typora,写字,自动保存(线程负责的)Java无法直..
2022-05-05 19:40:42 491
原创 JUC并发(二) 集合安全
1、List不安全CopyOnWriteArrayListArrarlist测试(单线程)public class ListTest01 { public static void main(String[] args) { List<String> list = Arrays.asList("1", "2", "3"); list.forEach(System.out::println); }}多线程下ArrayList还安全吗?
2022-05-05 19:40:18 148
求教程,上传图片到七牛
2022-04-20
sql 查一个表的数据都存在另一个表内
2021-04-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人