自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixiaohuai的博客

任何质变都来自于量变的积累。

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 面试题之数据库脏读、不可重复读、幻读

一、简介本文将总结脏读、不可重复读、幻读的概念以及一些区别,希望通过这些比较能够帮助小伙伴们加深对脏读、不可重复读、幻读的理解。二、脏读脏读: 指一个事务中访问到了另外一个事务未提交的数据(通俗地讲就是一个事务正在更新数据但是还没有提交更改到数据库,而此时另外一个事务刚好读取到该数据并且使用了这个数据)简单分析:假设两个线程操作之前数据库里面user_id = 1 对应的a...

2019-12-31 21:51:36 1635

原创 面试题之TCP三次握手和四次挥手详解

一、简介TCP在通信之前,必须先建立连接,如果无须再传输数据,则需要关闭连接。在建立连接的过程中,存在三次握手阶段,在关闭连接的时候存在四次挥手阶段,本文将总结三次握手和四次挥手的具体过程。首先需要了解几个概念:序列号seq:用来标记数据段的顺序,报文段中的第一个字节的数据编号; 确认号ack:指的是期望接收到下一个字节的数据编号,即就是当前报文段最后一个字节的数据编号+1; 确认...

2019-12-29 10:58:32 487 1

原创 面试题之TCP与UDP的区别

一、简介UDP协议和TCP协议都是传输层协议。下面简单先介绍一下TCP和UDP的概念:TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据(有点类似于打电话必须先建立连接)。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端...

2019-12-29 10:52:35 689

原创 面试题之浅克隆和深克隆

一、简介在Object基类中,有一个方法叫clone,产生一个原始对象的克隆,克隆对象是原对象的拷贝,由于引用类型的存在,有深克隆和浅克隆之分,若克隆对象中存在引用类型的属性,深克隆会将此属性完全拷贝一份,而浅克隆仅仅是拷贝一份此属性的引用。clone()方法是Object类的,并不是Cloneable接口的,Cloneable只是一个标记接口,标记接口是用用户标记实现该接口的类具有某种该...

2019-12-26 20:53:32 433

原创 面试题之cookie和session区别

一、简介常用的会话跟踪技术有cookie和session,Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。其中cookie分为:会话Cookie:不设置过期时间,表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。会话cookie一般不存储在硬盘上而是保存在内存里。 持久Cookie:设置了过期时间,浏览器...

2019-12-26 20:36:42 1299

原创 面试题之get和post的区别

一、简介本文总结通常用的两种请求方式:get 和 post方式的区别,这道面试题出现的频率也比较高。二、区别如下表所示:get和post方式的区别 请求方式区别 get post 用途 从服务器获取数据 向服务器提交数据 参数传递 ...

2019-12-25 21:22:47 1086

原创 面试题之接口和抽象类的区别

一、简介本文总结最常见的面试题之一:接口和抽象类的区别。二、区别如下表所示:接口和抽象类对比 区别 Interface接口 Abstract class(含有抽象方法的类成为抽象类) 声明方式 interface abstract 使用方式 ...

2019-12-25 21:13:08 724

原创 迭代时移除List中的元素的正确方式

一、简介本篇文章总结一下另外一个很常见的错误:迭代的时候对集合对象进行删除操作的正确使用方式。二、使用详解如果遇到需要循环删除List中匹配的元素,相信很多小伙伴第一个想到的办法就是使用for循环遍历,然后使用挨个比较,如果相等则删除元素,即如下面的代码所示:List<String> list = new ArrayList<>();list.add("...

2019-12-24 20:18:42 2259

原创 数组转ArrayList的正确方式

一、简介今天,我们讲讲开发中常见的错误之一 - 数组转ArrayList的正确方式。二、数组转ArrayList项目中难免会有数组对象转换为List对象的需求,很多小伙伴们可能会这样写:String[] array = new String[]{"a", "b", "c"};//数组转ListList<String> list = Arrays.asList(ar...

2019-12-24 20:09:08 3630

原创 redis分布式锁学习总结

一、简介概念:分布式锁,指的是在分布式部署环境下,通过加锁来控制共享资源在多个客户端之间的互斥访问,即同一时刻只能有一个客户端对共享资源进行操作,保证数据一致性。 特点: 互斥性:同一时刻多个客户端对共享资源的访问存在互斥性; 防死锁:对锁设置超时时间,防止客户端一直占用着锁,即防止死锁; 可重入性:一个客户单上的同一个线程如果获取锁之后还可以再次获取这个锁(客户端封装,可以使用...

2019-12-22 15:59:05 511

原创 redis缓存穿透、缓存雪崩、缓存击穿详解

一、简介其实,redis在实际项目中应用在缓存占了绝大多数场景,缓存能够有效降低访问数据库的压力,避免频繁请求数据库,一定程度上提高了系统的响应速度。一般比如临时性的文件、微信access_token等等都比较适合放在redis缓存中。缓存工作流程图:大体步骤:【a】客户端发起一个请求;【b】首先我们先去redis缓存中查询是否存在命中的数据,如果redis缓存中存在数据,...

2019-12-17 10:28:53 406

原创 redis5.0.7集群搭建

一、简介前面介绍了redis主从复制和redis哨兵模式,它们能在一定程度上提高系统的稳定性,但是当数据量比较大的时候,单个主节点压力可能会过于太大,这个时候可以考虑将redis集群部署,本文将详细介绍redis集群搭建的详细过程。二、redis集群介绍Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同...

2019-12-15 11:03:51 919

原创 redis之哨兵模式

一、简介通过上篇文章主从复制的学习,相信小伙伴都成功搭建了主从复制的环境,但是我们在知道,假如master主节点发生宕机现象,那么从节点并不会接替主节点继续工作,而是在原地待命,其实这样不好,我们希望的是当主节点宕机之后,从节点可以选举产生出一个成为master主节点,然后继续工作。这就需要使用到哨兵模式sentinel,通过哨兵模式可以实现自动化的系统监控和故障恢复。哨兵作用:哨兵主要是...

2019-12-13 20:22:00 412

原创 redis之主从复制

一、简介概念:主从复制,即master-slave模式,指的是主机数据发生变化的时候根据配置的策略,自动将数据同步到从机上,master主机以写操作为主,slave从机以读操作为主。 主从复制作用: 可以实现读写分离,master写,slave读; 可以有效降低master的压力,可以将读操作分发到多个slave从节点上; 可以实现数据的备份; 配置方式: 从库配置:s...

2019-12-13 20:06:32 249

原创 redis之消息订阅发布

一、简介概念:redis消息订阅发布,指的是进程间的一种消息通信模式:发送者(publish)发送消息,订阅者(subscribe)订阅消息。通过subscribe命令可以让客户端订阅任意数量的频道,每当有新信息发送到被订阅的频道时,信息就会被发送给所有订阅指定频道的客户端。 订阅/发布消息图:发布/订阅原理: 每个 Redis 服务器进程都维持着一个表示服务器状态的 redis.h...

2019-12-13 10:38:04 409

原创 redis之事务

一、简介概念: redis事务,指的是可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞。 作用: 一个队列中,一次性、顺序性、排他性地执行一系列命令。 常用操作命令: 命令 说明 multi 开启一个redis事务,标记事务的开始...

2019-12-11 21:54:55 238

原创 redis持久化之aof

一、简介aof,全称叫"append only file", aof是以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,redis重启的话根据日志文件的内容将写指令从头到尾执行一次以完成数据的恢复。AOF方式持久化默认保存的是appendonly.aof文件。 配置文件位置:# ...

2019-12-10 21:28:27 704

原创 redis持久化之rdb

一、简介redis持久化的方式主要有两种方式:一种是以快照的方式进行持久化,这种方式也叫作rdb方式(redis database); 另外一种方式是aof方式(append only file);通过redis的持久化,我们可以将数据保存在磁盘上,以便于在redis出现故障或者重启时恢复上次的数据。两种方式各有各的优点和缺点,当然也可以两者一起使用,但是redis会有限加载aof文件...

2019-12-10 21:07:42 406

原创 redis配置文件详解

一、简介redis的配置文件主要是在redis.conf中进行配置,下面我们将对常用的配置进行说明,小伙伴们在工作中根据需要自行更改相应的配置。二、常用配置说明【a】通用属性:比如进程文件名称、日志级别、日志文件、数据库等。#默认情况下,Redis不作为守护进程运行,这里设置redis在后台运行daemonize yes#redis进程文件存放位置(进程管道文件)pi...

2019-12-09 21:45:57 521

原创 redis数据类型之ZSet

一、简介ZSet,简称Sorted Set有序集合,和集合一样也是String类型元素的集合, 且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数Score。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2^32 - ...

2019-12-08 20:12:06 512

原创 redis数据类型之Set

一、简介Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32- 1 (4294967295, 每个集合可存储40多亿个成员)。下面通过一张表格列出关于Set常用的操作命令:Set常用操作命令总结 命令 ...

2019-12-08 20:02:36 266

原创 redis数据类型之Hash

一、简介Hash是一个String类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32- 1 键值对(40多亿)。类似这种数据结构: key-value键值对模式不变,但是value里面又是field-value对应模式。{ hash1 : {name: zhangsan,age : 18, sex: male...

2019-12-08 19:52:10 304

原创 redis数据类型之List

一、简介Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32- 1 个元素 (4294967295, 每个列表超过40亿个元素)。redis中List数据类型常用命令 命令 使用说明 lpush 向列表头部添加一个或多个元素 ...

2019-12-08 10:01:42 711

原创 redis数据类型之String

一、简介Redis中最基本的数据类型,它是二进制安全的,可以包含任意数据类型,如图片等。Redis中String类型的数据上限的512M。下面是常用的String操作命令:String数据类型常用命令说明 命令 说明 set 设置字符串的值 get 获取字符串的值,如果 ke...

2019-12-08 09:08:55 445

原创 redis简介与常用数据类型介绍

一、redis简介概念:redis,全称是remote dictionary server(远程字典服务器), 免费开源,使用c语言开发。redis是一个高性能的key-value键值对分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库(非关系型数据库)。 特点 a. redis支持持久化(rdb和aof两种方式),可以将内存中的数据持久化到磁盘,当redis重启时可以恢复...

2019-12-07 15:20:23 526

原创 Linux下安装redis5.0.7

一、简介本文将总结如何在Linux下安装redis5.0.7内存数据库,后面也会总结一些redis方面的知识。二、安装步骤【a】首先去官网下载redis-5.0.7.tar.gz文件,下载地址为:https://redis.io/download【b】将下载好的redis压缩包使用xftp上传到服务器中mkdir rediscd redis/【c】解...

2019-12-06 21:02:28 2612

zipkin-server jar.zip

spring cloud zipkin服务链路跟踪server相关jar包,下载完成之后使用java -jar zipkin-server-2.12.9-exec.jar方式运行,就能启动zipkin-server,不建议自己搭建zipkin-server

2020-08-29

空空如也

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

TA关注的人

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