自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 java-springboot-redis-使用教程

redis相关

2022-07-03 21:27:09 510 1

原创 elasticsearch总结

一般需要安装elastic+ elastic-headhead提供前端页面展示数据使用。​els是什么lucence实现的分布式搜索引擎.怎么做到的基于lucence。启动流程1、elasticsearch: 本地自己测试,可以修改elasticsearch/bin 目录的 jvm.options中 -xms的参数256m。减少内存的损耗;在els根目录bin目录下执行 elasticsearch.bat可执行文件。(闪退的话在小黑窗执行就可以看到错误)2、elasticserach-he

2021-09-20 02:29:46 405

原创 window10安装mysql多版本

需求:本机拥有5.5的mysql版本,使用集成环境安装,项目需要更高的版本,所以搭建了5.7的版本。搭建流程如下:1、安装mysql版本mysql的免安装版本配置,下载完直接修改my.ini配置文件port = 3306basedir=D:/mysql-5.7.17-winx64datadir=D:/mysql-5.7.17-winx64/datamax_connections=200character-set-server=utf8default-storage-e

2021-09-18 14:48:11 124

原创 java基础之string

为何写这篇文章。因为string在开发中用的实在是太多了。对于string为何要设计为常量,在内存中的存储等知识都有点不一样。做个记录,算是自己的一点思考。问题1:string为何设计为不变常量?引用java核心技术作者的原话:java设计者认为string的不可能性带来的共享高效率优于可变的低效率。人话:不可变可以带来字符串的共享。问题2:string如何做到不变?其实并不是完全不可变。先说不可变的原因:final + private修饰的字符数组。可变的原因:字符数组

2021-09-11 00:18:10 74

原创 spring设计模式

1、适配器模式spring中的aop和处理http请求的HandlerAdapter。aop中:配置的是adviser增强。需要的是interceptor。spring是根据拦截器链来做增强的。所以需要将配置的advisor(adaptee被适配)进行适配为 interceptor。target为AdvisorAdapter。好处:类似于旧系统的改造。因为老的adviser不能直接用。dispatcher中的handlerAdapter:被适配者为handler(controller),

2021-09-10 12:18:04 71

原创 java-jenkins线上配置和排错思路(业务层面)

写在前面,参考的这篇文章。https://blog.csdn.net/GitChat/article/details/79019454根据这篇文章的总结:大的排除方向两个:一个是系统的,一个是业务层面。系统方面:从计算机的原理来看,涉及这几个——cpu,内存,磁盘,网络。业务层面:对于java应用来说,gc日志、系统用户自己写的日志。之前自己也大概知道如何排查,但是没有这么的有条理性,也没总结过相关的思路。对于系统层面,暂时不总结。稍微解释下内存free -m中的 buff/c

2021-09-06 14:29:39 341

原创 java集合实现原理和应用场景

List:不唯一。 ArrayList:原理:动态数组实现,和数组的差别就在动态两个字。面试比较多的是扩容逻辑。(逻辑有点像分页逻辑,要考虑两头)默认是10,按照原来的容量1.5倍进行扩容,如果不够,那就设置为需要的大小,如果大于最大INT整数,则设置最大值。另外因为实现了RandomAccess接口,要遍历的话for循环的效率最好。【 另外关于删除和新增的效率问题,这里需要特别注意,就是在数组尾部添加数据时,如果不需要扩容,是非常快的,但是可能实际情况...

2021-07-25 15:26:28 156

原创 jvm常用命令(未完待续)

看的头大。有了这样一个思维:java中的所有类和对象其实都是存储在jvm堆和方法区中的。这些东西占用了内存。而这些东西是你写的代码。java的一个特点就是gc。垃圾自动回收。所以要了解gc的原理,这样能够写出更好的代码。另外可以配置gc。...

2021-07-05 18:55:24 71

原创 Rabbitmq

1、rabbitmq学习是时候搞一搞消息队列组件了。项目中还是有很多可用的地方。奶奶的搞了一天,终于是安装好了RQ.但是还不是很完善,但是也没有必要了。本机只是做个测试就行。rabbitmq做的事情是应用的解耦。加速接口的相应。它的特点有一对多,一对一,根据路由route key来做不同的转发( 理解起来有点类似condition 条件判断)。几个关键词:broker: 包括exchangeexchangequeueroute key另外消息有保证失败的情况。失败的情况有1、消息不能

2021-06-19 12:03:59 48

原创 jmmjvm流程+细节整理

多线程的东西volitile: 轻量级锁。不满足两个条件的时候需要另外加锁。1、只有一个线程修改当前值2、当前值的唯一性不需要其他的变量参与约束。(很拗口,大概的意思就是当前变量不会受其他值影响)学习下虚拟机底层的原理java内存模型 jmm作用:定义变量访问规则。(变量不包括局部变量和方法参数)jvm内存模型作用:定义了所有的变量如何存储。所以区别简单理解就是:不同的维度。一个是访问,一个是存储。java运行的三大模块:jdk, jvm,java语言本身程序计数器:没有oom,用于字

2021-06-16 14:02:27 184

原创 java多线程并发

1、准备学习并发编程,多线程编程,并通过实战线程抓取淘宝商品到数据库中。锁的理解和整理。锁的基本概念:6中状态。创建-运行-阻塞-等待-计时等待-死亡。项目中常用的锁写法。优劣点。ReetransLocksynchronized:底层的实现。监视器monitor 和 对象头。客户端锁定锁带来了性能的问题。不同的场景不用锁会更好。比如数字的设置,使用automic***(Long, Integer)这些类。使用compareAndSet方法,java中很多类都实现了类.

2021-06-14 01:05:07 54

原创 mysql知识点大全

文章目录mysql引擎一、 innodb和myisammysql innodb 锁一、锁存在的意义1、重复读级别理解:二、锁分类2.1 锁之间的互斥(重要)2.2 如何代码中加锁三、锁和索引的关系四、锁和事务的关系mysql索引总结 记录mysql实际开发中密切相关的技术点mysql引擎一、 innodb和myisam项目中运用最多的就是这两个,差别很大,项目中运用最多的也是innodb。原因:innodb支持事务+行锁。myisam表锁。锁的不同对于并发的影响很大。现在的项目一般都需要支持并发

2021-04-08 17:24:21 97

原创 redis知识点整理

redisredis的配置详解,常见问题,常见优化,常见用法文章目录redis一、redis基本概念二、redis基本配置三、redis优化针对以上的配置参数进行优化1、redis内存策略的选择四、redis问题总结一、redis基本概念 单线程、内存操作、epoll模型tips: 为何采用单线程的模式?redis本身操作非常快,多线程的上下文切换代价大于单线程依序执行。如果想让redis更好的利用cpu的多核,可以采用多实例。下面会详细说。二、redis基本配置提前说明,因为配置非

2021-04-07 20:31:24 67

原创 docker-compose安装lnmp环境+redis

docker-compose安装lnmp环境+redis文章目录docker-compose安装lnmp环境+redis前言一、最终成果二、安装步骤1.安装目录概览2.安装详细如何做测试和线上环境统一如何做docker的迁移遇到的问题感谢前言安装版本看下面截图,docker-compose版本3.3,安装的整个过程采坑。前提要熟悉docker & docker-compose & yml文件的编写规则 & dockerfile的相关指令 一、最终成果二、安装步骤1

2021-04-07 12:18:06 266

原创 服务器apache/nginx

服务器进程向内核操作io需要经历wait和copy两个阶段。

2021-03-30 17:28:26 221

原创 https概览

https文章目录https前言一、https作用?二、https底层原理三、https配置五、常见问题问题一:https加密后为什么抓包工具能看到明文?前言大概的了解https的实现思路以及配置的必要性。一、https作用?http明文传输,数据会被劫持,那么破坏者就会篡改,监听,冒充。https的作用就是防止这些情况的发生。二、https底层原理网络传输协议,四层速记,http应用层,tcp 传输层 ,ip网络层,链路层(物理层+数据链路层)。https加密的协议tls/ssl属

2021-03-29 12:27:08 107

原创 xunSearch学习笔记(技术淘汰)

大体思路:1、首先需要配置索引库,类似mysql的数据存储2、引用xunsearch的sdk进行搜索那么怎么进行配置,需要配置哪些索引,就能出来我们需要的哪些数据...

2020-08-09 01:21:19 137

原创 apache+php配置优化

1、httpd -V 查看http工作的模式,apache2.4有三个模式:prefork、worker、event。worker和event类型,event相当于是worker的进化版。大体的区别开篇另讲。参考这个链接:https://blog.51cto.com/xsboke/19143702、进程和线程的配置看具体是什么模型,目前项目中使用的是event,应对高并发场景比前两者会好。<IfModule mpm_worker_module>StartServers 3

2020-07-14 21:26:44 393

原创 防火墙的命令修改

新服务器防火墙配置1、service iptables status,查看是否安装了iptables2、yum install -y iptables (注意版本)3、#这个一定要先做,不然清空后可能会悲剧iptables -P INPUT ACCEPT4、#清空默认所有规则iptables -F#清空自定义的所有规则iptables -X#计数器置0iptables -Z5、#如果没有此规则,你将不能通过127.0.0.1访问本地服务,例如ping 127.0.0.1i.

2020-07-13 21:48:01 754

原创 分库分表

分库分表的方法一般就是垂直和水平拆分。分库:针对请求量大,而不是数据量大。将大量请求拆分到不同的机器上,才能降低业务的压力。所以一般也是根据业务类型进行拆分。订单,用户,商品,日志,统计等进行拆分。分表:是针对数据量大。一般来说业内500w或者2Gb,就需要进行拆分了。这里补充一点,mysql单表的性能瓶颈是由机器决定的垂直分表将表中字段拆分,依据是业务,前提你要对自己的系统业务很熟悉才行。比如用户表,常用的字段放在一个表,扩展信息不常用的放在另一个表。水平拆分表可以根据表中字段的范围、取

2020-06-07 13:44:23 85

原创 算法学习笔记

18.5.5 二叉树的删除新增查找最小最大哈夫曼编码 排序 斐波那契数列 栈实现计算器 栈实现中序表达式转后序。18.5.6堆(优先队列) 散列 图论 深度优先 红黑树18.5.26图论算法:{欧拉回路:用一只笔画出不重复的线通过所有的顶点。深度广度优先算法。无向有向图无圈有圈图 拓扑排序网络流问题:对应交通流量或者水管里的流水,是可以通过边来传递的最短...

2020-05-06 09:52:36 222

原创 mysql学习笔记

主从复制 replication:主库备库,大规模高性能应用的基础。水平扩展。原理:1、基于sql语句的复制。优点:简单方便;缺点:有些sql不能被正确记录,串行化更新,需要跟多的锁,数据量会很巨大。2、基于行的复制。缺点:一条sql可以记录的会出现大量的日志记录,浪费空间。3、采用了io线程和sql线程异步处理。涉及到的文件:二进制binary日志 ,中继日志(备...

2020-05-05 21:12:30 91

原创 swoole笔记

easyswoole的运行流程:服务启动前的准备,初始化配置参数,配置事件回调,启动服务,开启监听,接受请求,当请求进来,回调对应的监听方法,处理请求,相应请求。启动swoole服务后运行流程(底层分析):master进程启动,创建reactor线程用于处理tcp连接(reactor多线程做的事:连接监听socket,接受转发数据,UDP请求当worker进程处理完后不经过react...

2020-05-05 20:33:29 112

原创 es源码解析

1、phar的使用,打包php文件。类似java的jar打包文件。适用于常驻内存。提高加载效率。2、getpwd()方法返回文件的当前执行目录。3、composer的理解:主要是在composer里注册了spl_autoload_register函数,并且维护了一个类,类中有项目里所有文件的地址目录,当new一个类时找不到文件,则会调用register中的方法,去这个类中找相应...

2020-05-05 20:32:35 642

原创 laravel细节学习

容器 Application extends Container1、匿名函数的作用可以延迟对象的实例化,按需实例化,提高效率。2、别名机制:通过别名查找对应的实现类,别名和实现类的关系提前存储在对象属性$aliases中事件机制:实现业务解耦业务场景:登录后增加登录日志;文章浏览新增浏览数;。。。。。。。。。数据库的设计非常多的封装!!1、collectio...

2020-05-05 20:31:36 104

原创 nginx基础学习

nginx的特点:适合处理高并发,因为master进程下控制多个work 进程,一个work进程可以处理的并发数受限制于服务器内存大小,不像apache,要处理高并发需要开启很多个进程处理,一个进程处理一个请求,这样肯定存在进程间不停切换,进程切换导致资源的浪费。nginx属于异步非阻塞io,适用于io密集型的应用,而apache适用于cpu密集型的应用,什么是io密集型,比如调用其他...

2020-05-05 17:33:34 90

原创 apache和nginx原理分析

说来话长。从一个请求进来和多个请求进入服务器分析流程。理解服务器是如何匹配各种场景的请求的。首先说nginx,高性能、异步非阻塞服务器。当请求进入到nginx,nginx此时是使用master进程接受请求,nginx的master进程是主进程,负责管理worker进程,真正处理请求的是worker进程。每个worker进程是单线程的。后面说原因。这个时候外部请求有io阻塞,所有有wa...

2020-04-09 21:56:23 93

原创 redis原理

redis多实例的理解redis单线程、内存操作。既然是单线程,有好处也有坏处。好处是单线程没有线程切换引起的性能浪费,还不用考虑加锁。。。坏处是当一个操作比较耗时的情况会影响并发。。。如何解决?可以开多个redis实例,开多个端口,前提是cpu是多核的,这样可以不浪费cpu不同的实例做不同的事,职责分的更细,比如耗时的读操作可以给其中一个实例去做,那么写操作就可以在读操作的同时进...

2020-04-08 17:19:40 157

原创 php底层原理

php底层原理1、php底层的组成以及请求来时的调用过程sapi // zend // ext 三大块服务器启动时跟随着通过sapi启动php服务,包括启动php的各种模块方法,当请求进来时,php会启动模块的请求方法,比如一些请求变量,$_SESSION等,zend引擎解析成opcode交给php内核处理请求,内核会调用扩展ext的一些方法,比如mysql连接等,处理完后内核将数据返回...

2020-03-26 13:45:10 685

原创 redis调优

linux 服务器 redis启动 重启 关闭 命令redis添加为开机自启动。启动systemctl start redis-serversystemctl stop redis-serversystemctl restart redis-server上面的启动不了用下面的:/usr/local/redis/bin/redis-server /usr/local/redis/etc...

2020-03-25 20:56:40 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除