- 博客(19)
- 资源 (6)
- 收藏
- 关注
原创 Linux 离线安装docker的过程及镜像导入导出
Linux 离线安装docker的过程前言有时候会遇到服务器不能联网的情况,这样就没法用yum安装软件,docker也是如此,针对这种情况,总结了一下离线安装docker的步骤1. 准备docker离线包docker官方离线包下载地址下载需要安装的docker版本,这里已docker-17.03.2-ce.tgz版本为例子。2. 准备docker.service 系统配置文件[Unit]Description=Docker Application Container EngineDocu
2020-08-22 11:19:02 839
原创 8个尽量优化你的SQL
查询语句的优化是SQL效率优化的一个方式,做到以下8个方面优化你的SQL。1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。Select * from user优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。SELECT * FROM t WHERE id IN (2,3)SELECT * FROM t1 WHERE usern
2020-09-20 22:14:29 331
原创 Spring MVC 工作流程简介
简介Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)工作流程spring mvc 请求用例图1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处
2020-09-19 23:47:27 242
原创 Redis的各种数据类型实践-ZSet
zset是有序的set集合,通过传入的分值进行排序ZSet常用操作ZADD key score member [[score member]…]//往有序集合key中加入带分值元素ZREM key member [member …] //从有序集合key中删除元素ZSCORE key member //返回有序集合key中元素member的分值ZINCRBY key increment member//为有序集合key中元素member的分值加上increment ZCARD key//返
2020-09-18 23:43:52 194
原创 Redis的各种数据类型实践-Set
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。Set常用操作SADD key member [member ...]//往集合key中存入元素,元素存在则忽略,若key不存在则新建SREM key member [member ...]//从集合key中删除元素SMEMBERS key //获取集合key中所有元素SCARD key/
2020-09-17 23:00:47 214
原创 Redis的各种数据类型实践---List结构
Redis 列表(list)Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含2的32次方减1 个元素 (4294967295, 每个列表超过40亿个元素)。常用命令LPUSH key value [value ...] //将一个或多个值value插入到key列表的表头(最左边)RPUSH key value [value ...]//将一个或多个值value插入到key列表的表尾(最右边)LPOP key//移除并
2020-09-16 23:14:50 132
原创 Redis的各种数据类型实践---HASH结构
Redis HashRedis 的字典使用哈希表作为底层实现,一个哈希表里可以有多个哈希表节点。每个哈希表节点就保存了字典中的一个键值对。Hash是一个string 类型的field和value的映射表。Hash特别适合存储对象,相对于将对象的每个字段存成单个string 类型。一个对象存储在Hash类型中会占用更少的内存,并且可以更方便的存取整个对象。Hash 常用操作HSET key field value//存储一个哈希表key的键值HSETNX key field value//存储一个不
2020-09-15 22:53:03 190
原创 Redis的各种数据类型实践--String字符串
Redis作为一款NoSQL内存数据库,其丰富的数据类型、简单易用的命令、单机可达10万的高并发(官方数据),从面世以来就深受广大用户的喜爱。Redis的五种数据类型,是我们学习Redis时的必修课,但是大多数人都只是去学它的命令、API,却不知道这些数据类型都能应用在哪些场景,那这些命令学起来也就会很快就忘,终究只是“纸上谈兵”。用好这五种数据类型将给你的开发带来很大的便利,给你的程序带来很大的性能提升,同时这五种数据类型能玩出很多花样。不过大多数同学,在实际的开发过程中,大多只用到了Redis五种数
2020-09-14 23:02:56 135
转载 Kubernetes 学习(1)-了解k8s及其组件
什么是Kubernetes?Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以:自动化容器的部署和复制随时扩展或收缩容器规模将容器组织成组,并且提供容器间的负载均衡很容易地升级应用程序容器的新版本提供容器弹性,如果容器失效就
2020-09-13 23:12:26 220
原创 Windows 下使用scoop包管理器安装RabbitMQ
在Windows上使用Scoop包管理器在命令行下安装RabbitMQ。这使得它很容易安装且易于升级或卸载。1、你需要安装scoop如果你还没安装scoop请移步我的博客scoop–安装配置2、添加 bucket(桶)主要是一个main bucket 里面有erlang 还有个 extras bucket 里面有rabbitMQ我们可以用命令查询下有哪些bucket scoop bucket known添加bucketscoop bucket add mainscoop buc
2020-09-12 23:24:09 297
原创 记一次线上问题排查-maven父子结构依赖所遇到的坑
场景:基于springboot框架所搭建的maven工程,而且都是相互独立的。有个parent父工程,common基础模块、以及其他模块(Module A、Module B)等。问题:有个RabbitMQ producer生产者模块需要作为jar包被其他工程引入比如Module A。在对Module A进行打包时,出现问题:Module A中所依赖的producer工程的util程序包不存在。即使能打包成功,用java -jar启动jar包也会报Class Not Found,依赖的producer工
2020-09-11 08:28:22 253
转载 Python与Golang各自的特点及应用领域
特点python①解释型语言程序不需要在运行前编译,在运行程序的时候才翻译,专门的解释器负责在每个语句执行的时候解释程序代码。这样解释型语言每执行一次就要翻译一次,效率比较低。②动态数据类型支持重载运算符,也支持泛型设计。(运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。泛型设计就是定义的时候不需要指定类型,在客户端使用的时候再去指定类型)③完全面向对象的语言函数,模块,数字,字符串都是对象,在Python中,一切接对象完全支持继承,重载,多重继承④拥有
2020-09-08 23:43:52 834
原创 Yapi 可视化接口平台安装实践
环境要求nodejs(7.6+)mongodb(2.6+)git安装使用我们提供的 yapi-cli 工具,部署 YApi 平台是非常容易的。执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码为 ymfe.org 登录系统(默认密码可在个人中心修改)。npm instal
2020-09-08 15:38:22 465
原创 设计模式学习(六)-抽象工厂模式
设计模式学习(六)-抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍**意图:**提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。**主要解决:**主要解决接口选择的问题。**何时使用:**系统的产品有
2020-09-03 23:11:27 139
原创 UML中的类图及类图之间的关系
为了后续更好的看懂类和类直接的关系这里我们就先要了解下UML。统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言。特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行与分布式系统的建模。UML 从目标系统的不同角度
2020-08-31 22:52:33 311
原创 GoF的23种设计模式
GoF的23种设计模式GoF在其设计模式一书中主要介绍了23种设计模式,根据模式的完成什么工作来划分可以把设计模式分为三大类创建型模式、结构型模式和行为模式1、创建型模式:用于描述怎样创建对象,特点“将对象的创建与使用分离”。单例、原型、工厂方法、抽象工厂、建造者等都属于创建型模式2、结构型模式:用于描述如何将类或对象按某种布局组成更大的结构。代理、适配器、桥接、装饰、外观、享元、组合等7种为结构模式。3、行为型模式:描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责
2020-08-30 21:10:58 414
原创 Windows下Scoop安装、配置与使用
Scoop简介Scoop是Windows的命令行安装程序,是一个强大的包管理工具。可以在github上找到其项目的相关信息,项目网址。安装的起因:在平常生活中如果要安装像gcc、git等一些需要手动配置相关参数的工具,需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染了一样。而scoop可以很好地解决这一问题,安装scoop后,只需要在命令行输入简单的一串命令即可安装你想要的软件。比如我想安装gcc,只需要输入scoo
2020-08-25 17:19:55 1604
原创 Linux 基础之定时任务
定时任务crondCrond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样定时任务查看可以使用以下命令查看定时任务crontab -l定时任务编辑可以使用以下命令编
2020-08-24 23:17:34 104
原创 堆、栈、方法区—JVM 内存模型分析
前言不论是正经或者不正经的程序猿要想变强不能光光变秃,你还必须掌握JVM相关的底层知识。JVM 内存模型首先先来看看下面的图这是一张JVM内存模型的一个概况图接下来我们对于运行时数据区的五个内存区域做一个简单的介绍:1. Java虚拟机栈虚拟机栈描述的是Java方法执行的动态内存模型。当我们的栈空间不足时,就会抛出StackOverFlowError栈帧:每一个方法执行都会创建一个栈帧,伴随着方法从创建到执行完成。用于存储局部变量表,操作数栈,动态链接,方法出口等信息局部变量表:存放编译
2020-08-22 16:44:20 211
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人