自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sardine_z

炕頭-雜貨鋪

  • 博客(36)
  • 收藏
  • 关注

原创 Redis 相关技术点

1、redis 事物是怎么实现的?multi、exec、discard、watch 是 redis 事物的相关命令。事物可以一次执行多个命令,并可以有以下两个特性:1、事物是一个单独的隔离操作,事物中的所有命令都会被序列化,按顺序执行。事物在执行的过程中不会被其他客户端命令操作打断。2、事物是一个原子的操作,要么全部执行成功,要么全部不执行。exec 命令负责触发并执行事物中所有操作,是和multi 命令配合使用的,如果只是开启事物(multi)而没有触发(exec),那么事物中的操作是.

2021-11-17 14:29:31 618

原创 Redis 笔记(七)Jedis

目录1、Maven2、Redis 连接3、String(字符串) 实例4、List(列表) 实例工具类Jedis 是 Redis 官方提供的操作数据的技术。把所有的 Redis 指令都定义成Java 工具类的方法,方法名和 Redis 的指令名完全一样;开发通过程序访问 Redis,只需要使用工具类及其方法即可。1、Maven<dependency> <groupId>redis.clients</groupId> ...

2021-11-02 17:31:57 127

原创 Redis 笔记(六)主从复制、哨兵模式

目录搭建一主二从 Redis 集群哨兵模式总结主从复制:是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master),后者称为从节点(Slave)。默认情况下,所有的 Redis 服务都是主机,即都能写和读,但是都还没有从机。注意:Master 主要负责写入数据,之后会把数据同步到 Slave, Slave 主要负责读取数据,数据只能从 Master 同步到 Slave,而不能由 Slave 写入。由此可以遵循 主少从多、主写从读、读写分离的方式

2021-11-02 16:39:39 252

原创 Redis 笔记(五)消息订阅与发布

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。客户端可以订阅任意数量的频道。注意:目前 Redis 的消息与订阅在实际开发中基本不会使用,如果要用到消息中间件,推荐 ActiveMQ、RabbitMQ1、subscribe:订阅一个或者多个频道的消息subscribe ch1 ch2 ch32、publish:将消息发布到指定频道publish ch1 hello3、psu...

2021-11-02 10:29:03 748

原创 Redis 笔记(四)事物

事务:把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败。Redis的事务:允许把一组 Redis 命令放在一起,把命令进行序列化,然后一起执行,保证部分原子性。

2021-11-01 18:30:38 60

原创 Redis 笔记(三)持久化

目录RDB策略AOF策略Redis提供持久化策略,在适当的时机采用适当手段把内存中的数据持久化到磁盘中,每次 Redis 服务启动时,都可以把磁盘上的数据再次加载内存中使用。RDB策略在指定时间间隔内,Redis 服务执行指定次数的写操作,会自动触发一次持久化操作。RDB策略是Redis 默认的持久化策略,Redis 服务开启时这种持久化策略就已经默认开启了。开启:默认开启。配置文件中 save 相关属性(详见《Redis 笔记(二)配置文件》)关闭:注释配置文件中 save 相

2021-10-28 16:09:09 70

原创 Redis 笔记(二)配置文件

目录网络配置常规配置Redis 安装完成之后,在 Redis 的根目录会提供一个配置文件(redis.conf)。Redis 服务可以参考配置文件中的参数进行运行。只有启动 Redis 服务器时指定使用的配置文件,参数才会生效;否则,Redis 只会采用默认的参数运行。网络配置1、配置服务运行端口号。默认使用6379端口 port2、指定IP地址访问服务。默认连接127.0.0.1bind注意:Redis 服务配置了 port 和 bind...

2021-10-28 14:57:53 84

原创 Redis 笔记(一)基础

什么是Redis?Redis是一个用C语言编写的、开源的、基于内存运行并支持持久化的 key-value、非关系型、NoSQL、数据库。Redis中的数据大部分时间都是存储内存中的,适合存储频繁访问、数据量比较小的数据。Redis特点速度快,基于内存进行处理数据 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 支持String,list,set,zset,hash 等数据结构的存储 支持数据的备份,即 master-slave 模式的数据备份 功能.

2021-10-27 16:26:57 84

原创 Spring框架 工厂特性

Spring 工厂创建对象的模式单例:工厂默认在创建对象时都是使用单例方式,单例方式无论在工厂获取多少次,始终获取的是同一个对象默认 Spring 在管理组件对象是 单例创建(singleton) 例如:service、dao 如何修改工厂创建组件对象为多例 struts2 中 action 必须以多例形式管理,否则避免数据共同使用 <!-- 单例/多例 scope: singleton 单例模式 ..

2021-09-21 17:49:10 139

原创 Spring框架 核心思想

目录IOC:控制反转(Inversion of Controll)DI:依赖注入(Denpendcy Injection)1、SET注入-使用成员变量的 SET 方法形式进行赋值2、构造注入-使用构造方法形式进行注入3、自动注入-通过配置文件中完成类中属性自动赋值IOC:控制反转(Inversion of Controll) 详解:将原来手动 new 关键字创建对象的权力交给 Spring ,通过在配置文件中配置 Bean 标签形式创建对象(交给 Spring,由 S...

2021-09-21 17:09:06 161

原创 Spring框架 一个叫春(天)的故事

Spring 定义 Spring 框架是一个集众多设计模式(工厂设计模式、代理设计模式、策略设计模式、单例设计模式...)于一身的`开源的`、`轻量级的`项目管理框架。致力于JAVAEE轻量级解决方案。轻量级解决方案:提供一个简单的、同意的、高效的方式构造整个应用,并且可以给将单层框架以最佳的组合柔和在一起建立一个连贯的体系。特点:Spring 框架的本质不在是替换项目中某个技术,二十将项目中使用单层框架进行 整合、管理、柔和。Spring 框架核心作用...

2021-09-21 16:25:32 132 1

原创 SpringBoot - @Value注解读取数据

在使用SpringBoot项目中获取配置文件中的数据,我们会使用到 @Value这个注解。.yml 文件配置如下:test:list: - aaa- bbb- ccc.properties 文件配置如下:test.list[0]=aaa test.list[1]=bbb test.list[2]=ccc获取数据时,我们只需要加@Value加入到某个字段上,即可获取数据。@Value("${te...

2021-09-03 17:21:00 1856

原创 Nginx 错误集合

1、报错信息:nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)pid文件丢失,报错。一般存在于每次电脑开机后重新启动nginx后[root@localhost /etc/nginx/conf.d]# nginx -s reloadnginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directo..

2021-09-01 17:19:00 425

原创 JVM篇(四)类的加载机制

JVM虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制。

2021-08-29 18:49:23 131

原创 JVM篇(三)JVM生命周期

对象的创建1、当虚拟机遇到一条New指令时:会进行如下步骤检查指令的参数(即工作中我们New的对象),能否在常量池中找到它的符号引用。 如果存在,检查符号引用代表的类是否被加载、解析、初始化过。如果没有,执行相应的类加载。 加载通过后,虚拟机将为新生对象分配内存(所需内存大小在类加载完成后便可确定)。在堆的空闲内存中划分一块区域(指针碰撞-内存规整、空闲列表-内存交错的分配方式)。 每个线程在堆中都会有私有的分配缓冲区(TLAB),这样可以很大程度避免在并发情况下频繁创建对象造成的线程不安全.

2021-08-29 18:44:03 128

原创 JVM篇(二)体系结构(运行时数据区域)

Java 虚拟机在执行 Java 程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。...

2021-08-29 18:15:59 70

原创 JVM篇(一)理论

什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。这也是Java能够一次编译,到处运行的原因。 -- (百科).

2021-08-29 16:45:01 92

原创 Java 每日一道算法题(^(异或))

问题1:数组中有一个数字出现奇数次,其余次数均出现偶数次,找到这个出现奇数次的数字问题2:数组中有两个数字出现奇数次,其余次数均出现偶数次,找到这个出现奇数次的数字解题思路利用 ^(异或:可以理解为无进位相加)的特性 a 0 0 0 0 1 1 0 0 b 1 1 0 0 1 0 1 0a ^ b 1 1 0 0 0 1 1 0特性 1)、N ^ 0 = N ...

2021-08-27 15:42:23 106

原创 Java 每日一道算法题(2021-07-14)

问题:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。解析假设题意是叫你在排序数组中寻找是否存在一个目标值,那么训练有素的读者肯定立马就能想到利用二分法在 O(\log n)O(logn) 的时间内找到是否存在目标值。但这题还多了个额外的条件,即如果不存在数组中的时候需要返回按顺序插入的位置,那我们还能用二分法么?答案是可以的,我们只需要稍作修改即可。考虑这个插入的位置 \textit{pos}pos,它成立的条件为:

2021-07-14 16:40:51 73

原创 Java 每日一道算法题(2021-07-14)

问题:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。解析因为题目要求尽..

2021-07-14 15:00:33 133

原创 Java 每日一道算法题(2021-07-14)

问题:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。解析标签:二分查找过程:设定左右指针 找出中间位置,并判断该位置值是否等于 target nums[mid] == target 则返回该位置下标 nums[mid] > target 则右侧指针移到中间 nums[mid] < target 则左侧指针移到中间复杂度分析时间复杂度:O(lo...

2021-07-14 14:14:46 101

原创 JAVA基础- 类&对象

目录简介变量方法对象包装类简介类:类是一个模板,它描述一类对象的行为和状态。 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。下图中汽车为类(class),而具体的每辆车为该汽车类的对象(object),对象包含了汽车的颜色、品牌、名称等。图片来源:菜鸟教程(侵删)变量一个类可以包含以下类型变量:局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变..

2021-07-14 13:58:30 150

原创 JAVA基础- 数组

数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。 ...

2021-07-13 13:21:47 75

原创 JAVA基础- String

String 源码public final class String implements java.io.Serializable, Comparable<String>, CharSequence{ /** The value is used for character storage. */ private final char value[]; /** The offset is the first index of the storage t

2021-07-12 13:35:00 119 2

原创 JAVA基础-5 控制流程

目录IF分支结构IF-ELSE分支结构SWITCH分支结构(开关语句)FOR循环WHILE()、DO-WHILE()循环循环控制语句嵌套循环在程序的开发中,一共会存在三种逻辑结构:顺序结构从上到下依次执行每条语句分支结构IF()、IF-> ELSE、SWITCH()循环结构 FOR()、WHILE()、DO WHILE()IF分支结构主要是针对于关系表达式进行判断处理的分支结构if(关...

2021-07-06 15:42:25 40

原创 JAVA基础-4 运算符

1、数学运算符算数运算符+、-、*、/、%、++、--赋值运算符=、+=、-=、*=、/=、%=2、关系运算符比较运算符 <、>、=、<=、>=、==、!=逻辑运算符 与(&&)、与(&)、或(||)、或(|)、非(!)3、条件运算符/三元运算符布尔表达式 ? 表达式1 :表达式24、位运算与(&)、或(...

2021-07-06 15:36:43 133

原创 JAVA基础-2 JDK版本与安装

1、JDK历史JDK是编译和解释JAVA语言的工具。最早的时候,JDK是由 Sun(www.sun.com)公司提供的,但是Sun公司被 Oracle(www.oracle.com)收购后,Oracle JDK 1.8版本后逐渐商业化。(网络图...

2021-07-01 19:20:56 219 1

原创 JAVA基础-1 JAVA简介

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。Java分为三个体系JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 P

2021-07-01 19:20:41 152

原创 JDBC(Java DataBase Connectivity)

数据持久化:数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、xml、二进制流等。数据持久化意味着将内存中的数据保存到硬盘加以“固化”。好处:使用数据持久化有以下好处:程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。 业务逻辑代码可读性强,在代码中不会有大...

2019-04-08 19:09:43 377

原创 IntelliJ IDEA 插件

1、插件的安装打开setting文件选择Plugins选项Ctrl + Alt + s File -> setting2、插件Ⅰ:activate-power-mode 和 Power mode ||根据Atom的插件activate-power-mode的效果移植到IDEA上可以在设置中调整 屏幕是否抖动及粒子颜色。设置方法:1、在 Window...

2019-04-04 14:45:04 780

原创 Java 基础总结(三)

Java 基础知识总结内部类内部类分为:成员内部类,局部内部类以及匿名内部类。每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整。1、成员内部类在一个类中使用内部类,可以随意使用外部类的成员方法以及成员变量(包括私有private的)。内部类的实...

2019-04-01 15:37:01 832

原创 Java 基础总结(二)

Java 基础知识总结三、面向对象面向对象的三(四)大特性封装:封装是指把描述一个对象的属性和行为的方法封装在一个类中,实现高内聚,低耦合,防止产生依赖的影响。继承:继承是指在定义或实现一个类的时候,可以在一个已存在的类的基础之上来进行,把这个已存在的类所定义的内容作为自己的内容,并可以加入若干新内容,或修改原来的方法,使其更符合本身需求,这就是继承。继承是子类共享父类数据和方法...

2019-03-07 13:56:02 880

原创 Java 基础总结(一)

Java 基础知识总结一、Java概述JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。JVM:Java Virtual Machine,java虚拟机,用于保证java的跨平台的特性(java语...

2019-02-16 21:19:54 11748 18

原创 可视化工具连接Mysql 'caching_sha2_password' 问题解决

mysql5.8从开始将caching_sha2_password作为默认的身份验证插件,而在MySQL 5.7中,默认的身份验证插件是 mysql_native_password!这个时候可以修改 user 表中的密码规则,回到mysql5.7的密码验证格式。1、切换到 mysql 数据库use mysql;2、修改用户密码规则及新密码ALTER USER 'root'@...

2019-02-15 22:09:16 5135

原创 Java 复习整理

1、列出说明数据类型,各占字节和占用位数?在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型有byte、short、int、long、float、double、char、boolean引用数据类型有类、接口、数组 字节 位数byte 1 8short 2 16int 4 32 lo...

2019-01-25 17:30:21 559

原创 Hello World!

欢迎大家来访,我叫 - 炕頭。Hello  World!或许这是每个程序人的情怀吧。现在是 2019 - 01 - 25,对于传统的新年来说,还有一周左右的时间。这一年,我已不是刚入门的小白,懂得了肤浅的知识;这一年,我结束了第一份工作,告别了入门的安乐窝;这一年,我将继续走在路上,品尝着程序人生。那么,谨以此文来告诉世界,告诉我的程序人生:我已走在路上...

2019-01-25 09:57:35 205 3

空空如也

空空如也

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

TA关注的人

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