0%

Shell基本结构和运行

首先创建一个 shell 文件,并使脚本具有执行权限:

touch helloworld.sh

chmod +x helloworld.sh

编写内容如下:

#!/bin/bash
#echo是linux中的输出命令
echo "hello world!"
阅读全文 »

Redis数据类型

Redis提供了String,Hash,List,Set,Zset五种数据类型。

String

String数据结构是最简单的key-value类型,value不仅可以是String,也可以是数字,包括整数,浮点数和二进制数。

string 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串表示,而是自己构建了一种 简单动态字符串(simple dynamic string,SDS)。相比于 C 的原生字符串,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度为 O(1)(C 字符串为 O(N)),除此之外,Redis 的 SDS API 是安全的,不会造成缓冲区溢出。

主要的应用有:缓存,计数(比如用户的访问次数、热点文章的点赞转发数量等等),共享session和限速。

阅读全文 »

什么是事务

事务是逻辑上的一组操作,要么都执行,要么都不执行。

事务有四大特性,即原子性,一致性,隔离性和持久性(ACID)

  • 原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用
  • 一致性(Consistency):执行事务前后,数据要保持一致,多个事务对同一个数据读取的结果是相同的
  • 隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的
  • 持久性(Durability):一个事务被提交之后,它对数据库中数据的改变是持久化的,即使数据库发生故障也不应该对其有任何影响。
阅读全文 »

1. 操作系统的基本概念

  1. 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。
  2. 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
  3. 操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。
  4. 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。
阅读全文 »

1. 同步和异步的概念是什么

  • 同步:同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回
  • 异步:异步就是发起一个调用后,立刻得到被调用者的回应表示已经接收到请求,但是被调用者并没有返回结果,此时线程可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。

同步和异步的最大区别在于异步的话调用者不需要等待处理结束,被调用者会通过回调等机制来通知调用者其返回结果。

阅读全文 »

1. Java虚拟机运行时的内存区域

Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK1.8和之前的版本略有不同。

阅读全文 »

1. java线程状态转换

线程状态转换

新建(New)

创建后未启动

可运行(Runnable)

可能正在运行,也可能正在等待CPU时间片
包含了操作系统线程状态的RunningReady

阻塞(Blocked)

等待获取一个排他锁,如果其线程释放了锁就会结束此状态。

无限期等待(Waiting)

等待其他线程显示的唤醒,否则不会被分配CPU时间片。

阅读全文 »

get请求和post请求的区别

在实际应用中,getpost请求的区别主要有以下几个:

  • get请求用于从服务器上获得资源,而post请求用于向服务器提交数据
  • get将表单中的数据按照key=value的形式,添加到action指定的URL后面,并且两者之间使用?连接,各个变量之间使用&连接;post是将表单的数据放在HTTP协议的请求头或者消息体中,传递到action所指向的URL
  • get传输的数据要受到URL长度的限制(最大长度是2048个字符);而post可以传输大量数据,上传文件通常使用post
  • 使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get,对于敏感数据应使用post
  • get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是%20
  • get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留。
阅读全文 »

简介

Spring Cloud 是一个基于Spring Boot 实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud0 CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。

阅读全文 »

配置ip

如果不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时会发现无法成功推送镜像。
这是因为 Docker 默认不允许非HTTPS方式推送镜像。可以通过Docker的配置选项来取消这个限制。
对于使用systemd的系统,在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件)
对于Docker for Windows 、 Docker for Mac在设置中编辑 daemon.json增加和下边一样的字符串即可。

阅读全文 »