自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Cas乐观锁的初步理解

独占锁是一种悲观锁,synchronized就是一种独占锁;它假设最坏的情况,并且只有在确保其它线程不会造成干扰的情况下执行,会导致其它所有需要锁的线程挂起直到持有锁的线程释放锁。所谓乐观锁就是每次不加锁,假设没有冲突而去完成某项操作;如果发生冲突了那就去重试,直到成功为止。CAS(Compare And Swap)是一种有名的无锁算法。CAS算法是乐观锁的一种实现。CAS有3个操作数,内存值...

2020-05-05 23:11:04 227

原创 Java Web的小零碎知识点

1.session个cookie的区别?Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器...

2020-05-05 22:51:22 180

原创 网络基本知识(HTTP)

1.什么是cookie?cookie就是存储在客户端的一小段文本2.cookie是一门客户端的技术,因为cookie是存储在客户端浏览器中的3.cookie的作用:是为了实现客户端与服务器之间状态的保持4.cookie 技术不安全,不要使用cookie保存敏感信息5.cookie默认 在浏览器关闭之后,就立即实现失效.如果想指定cookie的过期时间,需要通过使用expires属性实现...

2020-05-05 19:27:00 229

原创 SQL基础之链接查询和嵌套查询

2020-04-28 21:09:28 162

原创 Linux常用命令最最实用的几个

2020-04-28 21:07:06 115

原创 SpringMVC的工作流程一图理解与主要注解

简述springMVC的运作流程1、用户通过浏览器向服务器发送请求,请求被SpringMVC的前端控制器DispatcherServlet拦截。2、前端控制器将拦截的请求发送给处理器映射器HandlerMapping,处理器映射器根据请求URL创建相应的处理器及拦截器,并返回给前端控制器。3、前端控制器,根据返回的信息,调用处理器适配器HandlerAdapter,处理器映射器执行处理器中...

2020-04-28 21:04:17 197

原创 SpringCloud常用的注解手写笔记

2020-04-27 20:56:47 111

原创 Nginx初学者快速理解

2020-04-27 17:10:35 109

原创 Redis的过期策略定时删除已经淘汰

三种过期策略定时删除含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:保证内存被尽快释放缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的...

2020-04-26 21:32:19 829

原创 Redis的淘汰机制

Redis提供了下面几种淘汰策略供用户选择,其中默认的策略为noeviction策略:· noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错。0· allkeys-lru:在主键空间中,优先移除最近未使用的key。· volatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的key。· allkeys-random:在主键空间中,随机移除某个ke...

2020-04-26 21:29:05 161

原创 Redis的持久化方案

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的...

2020-04-26 21:25:42 95

原创 Redis穿透,缓存雪崩,缓存预热

1.什么是缓存穿透一般的缓存系统,都是按照key值去缓存查询,如果不存在对应的value,就应该去DB中查找 。这个时候,如果请求的并发量很大,就会对后端的DB系统造成很大的压力。这就叫做缓存穿透。关键词:缓存value为空;并发量很大去访问DB。造成的原因1.业务自身代码或数据出现问题;2.一些恶意攻击、爬虫造成大量空的命中,此时会对数据库造成很大压力。解决方法1.设置布隆过滤器,...

2020-04-26 21:18:09 72

原创 Redis是单线程竟然还这么快

Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。Redis快的主要原因是:完全基于内存数据结构简单,对数据操作也简单使用多路 I/O 复用模型第一、二点不细讲,主要围绕第三点采用多路 I/O 复用技术来展开。多路 I/O 复用模型...

2020-04-26 10:28:19 89

原创 redis跟memcached有啥子区别

一 性能对比:由于 redis 只使用单核,而 memcached 可以使用多核,所以平均每一个核上 redis 在存储小数据时比 memcached 性能更高。而在 100k 以上的数据中,memcached 性能要高于 redis,虽然 redis 最近也在存储大数据的性能上进行优化,但是比起 memcached,还是稍有逊色。二 为啥 redis 单线程模型也能效率这么高?纯内存操作...

2020-04-26 10:13:00 96

转载 Redis的简介

Redis 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Red...

2020-04-26 10:10:26 73

原创 分布式事务的解决方案:2PC,TCC以及基于消息的最终一致性

何时选择利用TCC实现的事务然而基于补偿的事务形态也并非能实现所有的需求,如以下场景:某笔订单完成时,同时扣掉用户的现金,但交易未完成,也未被取消时,不能让客户看到钱变少了。这时我们可以引入TCC,其流程如下:订单服务创建订单订单服务发送远程调用到现金服务,冻结客户的现金提交订单服务数据订单服务发送远程调用到现金服务,扣除客户冻结的现金以上是正常完成的流程,若为异常流程,则需要发送远...

2020-04-24 23:56:27 757

原创 数据库锁的分类

锁锁是网络数据库中的一个非常重要的概念,当多个用户同时对数据库并发操作时,会带来数据不一致的问题,所以,锁主要用于多用户环境下保证数据库完整性和一致性。帮助理解:以商场的试衣间为例,每个试衣间都可供多个消费者使用,因此,可能出现多个消费者同时需要使用试衣间试衣服。为了避免冲突,试衣间装了锁,某一个试衣服的人在试衣间里把锁锁住了,其他顾客就不能从外面打开了,只能等待里面的顾客试完衣服,从里面把...

2020-04-24 10:00:20 227

原创 来了解事物的特性

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)  一致性是指事务必须使数据库从一个一致性状态变换到另一个一...

2020-04-24 09:53:43 190

原创 数据库优化之结构优化

首先要了解什么事数据库的优化,那么就要列举数据库优化的几种方式。第一个方法:选取最适用的字段属性。MySQL可以支持大数据量的存取,但是数据库中的表越小,在上面执行的查询就越快。所以可以将表中的字段宽度设置的尽可能小。第二个方法:使用连接来代替子查询(Sub-Queries)。可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。第三个方法:使用联合(...

2020-04-22 23:48:48 496 1

原创 tomcat的类加载器

Tomcat的类加载机制是违反了双亲委托原则的,对于一些未加载的非基础类(Object,String等),各个web应用自己的类加载器(WebAppClassLoader)会优先加载,加载不到时再交给commonClassLoader走双亲委托。对于JVM来说:因此,按照这个过程可以想到,如果同样在CLASSPATH指定的目录中和自己工作目录中存放相同的class,会优先加载CLASSPATH...

2020-04-21 18:58:13 740

原创 数据库的优化之创建索引,以及SQL

什么是索引在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。B)对于非聚集索引,有些查询甚至可以不访问数据页。C)聚集索引可以避免数据插入操作集中于表的最后一个数据页。D)一些情况下,索引还可用于避免排序操作。1.数据库索引...

2020-04-21 15:27:02 156

原创 微信小程序的登录流程

说明:1.调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。2.调用 code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。前置条件一共有三端:微信小程序客户端第三方服务器端微信服务器端1.检测登录是...

2020-04-15 22:08:43 284

原创 Spring的AOP和IOC

首先了解AOP呐就要了解spring的优点以及DI这个概念,来引入我们的AOP.spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦2.可以使用容易提供的众多服务,如事务管理,消息服务等3.容器提供单例模式支持4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能5.容器提供了众多的辅助类,能加快应用的开发6.spring对于主流的应用框架提供...

2020-04-14 23:10:08 1899

原创 垃圾GC的回收

1.首先说下什么是GC?什么是GC,GC就是垃圾回收机制:在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用对象的内存,可能会导致内存的耗尽,所以垃圾回收机制回收的是内存。同时GC回收的是堆区和方法区的内存。2.JVM回收特点JVM回收特点:(stop-the-world)当要进行垃圾回收时候,不管何种GC算法,除了垃圾回收的线程之外其他任何线程都...

2020-04-13 10:01:28 77

原创 JVM的内存结构

我们经常说的java内存就是jvm的内存结构,jvm的内存结构包含堆内存,栈和方法区等内容,所以了解jvm的内存结构很重要滴。。1. 根据VM规范,VM应该被划分为五块区域——即VM栈、堆、方法区、程序计数器、本地方法栈五个部分,下面分别介绍下。方法区(Method Area):该区域是所有线程共享的,主要用于存放类的信息,常量、静态变量、即时编译器编译后的代码等。垃圾回收器对这块区域的回收...

2020-04-13 09:52:43 60

原创 多个事务的并发可能会遇到的问题

事务隔离级别为了解决多个事务并发会引发的问题,进行并发控制。数据库系统提供了四种事务隔离级别供用户选择。1.Read Uncommitted 读未提交:不允许第一类更新丢失。允许脏读,不隔离事务。2.Read Committed 读已提交:不允许脏读,允许不可重复读。3.Repeatable Read 可重复读:不允许不可重复读。但可能出现幻读。4.Serializable 串行化:所...

2020-04-12 19:39:29 940

原创 最最简单的理解Spring中@Autowriter @Resourse @Qualifier的区别

1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualif...

2020-04-12 15:43:35 1185

原创 Redis的基本数据类型,以及应用场景

2020-04-12 15:35:14 99

原创 什么是单点登录,单点登录到底有什么特点?

1 什么是单点登陆:在分布式项目中会包含多个子项目,每个子项目都会接入认证和授权,那么这个时候用户想要访问的时候不能每个子模块都需要登陆一次,为了提高用户体验性需要实现用户只认证一次便可以在多个拥有访问权限的子项目中访问,这个功能就做单点登陆;单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一...

2020-04-12 15:31:47 1584

原创 Spring Security+Oauth2的认证和授权

1 认证和授权(1).什么是用户身份认证:用户身份认证就是用户去访问系统资源时系统要求验证用户的身份信息,身份合法就可以继续访问;常见的用户身份认证的形式有:账号密码登陆,指纹打卡等方式;(2).什么是时用户授权:用户认证通过后去访问系统的资源时,系统会判断该用户是否拥有访问资源的权限,只允许访问有权限的资源,没有权限的资源将无法访问,这个就是用户授权;用户的认证和授权的具体需求以及流程...

2020-04-12 15:13:11 374 1

原创 JWT,以及它具体的三部分组成

重点的公钥,私钥,我举个例子大家理解下。这就是它的特殊的地方,跟以前的JWT不同,它是json的格式,可以放很多信息 ,不是一个简单的字符串,再来说下对称加密。简单的例子很直观,总的来说第一种是使用的公钥,私钥,第二种用的是对称加密。...

2020-04-10 22:13:39 2355 4

空空如也

空空如也

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

TA关注的人

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