自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql MVCC实现

MVCC(Mutil Version Concurrency Control)多版本并发控制,是一种并发访问的机制(非具体实现),广泛应用于数据库管理系统,比如Mysql、Oracle、Postgresql等,实现对数据库的并发访问。本质就是一行数据具有多个不同版本的记录。Mysql的InnoDB引擎实现了MVCC机制,用来处理读写冲突,做到非阻塞并发读,提升并发效率。

2023-04-20 10:49:56 843 1

原创 如何判断对象是否存活/死去

文章目录1.引用计数法2.可达性分析算法2.1算法思想2.2可作为GC roots的对象2.3两次标记2.3.1第一次标记 && 筛选:2.3.2第二次标记 && 筛选:1.引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:实现简单、判断效率高缺点...

2020-04-01 10:34:31 490

原创 强软弱虚四种引用介绍

文章目录1.概述2.强引用3.软引用4.弱引用5.虚引用1.概述引用计数算法和可达性分析算法,都可以判断对应是否存活,判断对象是否存活都和“引用相关”。JDK1.2之前,reference存储的是一块内存的其实地址,一个对象在这种定义下只有被引用和没有被引用。当我们需要描述这样一种对象,如果空间内存足够时,保留在内存中;如果内存空间再进行垃圾收集之后还是非常紧张,则可以抛弃这些对象。比如缓存就...

2020-03-31 19:32:22 405

转载 这可能是目前最全的Redis高可用技术解决方案

文章目录常见的使用方式各种使用的优缺点Redis 单副本Redis 多副本(主从)Redis Sentinel(哨兵)Redis Cluster总结常见的使用方式Redis的几种常见的使用方式包括: Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研各种使用的优缺...

2020-03-31 15:54:27 275

原创 jstat命令

文章目录1.简介2.常用选项示例1.jstat -class pid2.jstat -gc pid3.jstat -gcutil pid4.其他命令1.简介jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]2.常用选项示例1.jstat -class pidjstat -clas...

2020-03-27 18:45:24 1653 2

原创 jmap命令

文章目录1.概要2.选项3.选项详解1.jmap -heap pid2.jmap -finalizerinfo pid3.jmap -histo:live pid4.jmap -dump:[live,]format=b,file=1.概要jmap [选项] pidjmap [选项]可执行核心jmap [选项] [server-id @]远程主机名或IP2.选项no option如果不...

2020-03-27 18:38:45 1076

原创 CountDownLatch和CyclicBarrier区别

CountDownLatch和CyclicBarrier都属于juc并发包下的工具类;从字面上理解,CountDown表示减法计数,Latch表示门闩的意思,计数为0的时候就可以打开门闩了。Cyclic Barrier表示循环的障碍物。两个类都含有这一个意思:对应的线程都完成工作之后再进行下一步动作,也就是大家都准备好之后再进行下一步。然而两者最大的区别是,进行下一步动作的动作实施者是不一样的。...

2020-03-23 23:57:21 382

原创 JMM-Java内存模型

文章目录1.计算机内存模型2.Java内存模型-JMM2.1概述2.2内存模型结构2.3内存间交互操作2.4先行发生原则:happens-before2.5原子性2.6可见性volatile之可见性:synchronized之可见性:2.7有序性volatile之有序性:synchronized之有序性:1.计算机内存模型计算机在执行程序时,每条指令都是在 CPU 中执行的,而执行指令过程中,...

2020-03-23 23:03:41 309

原创 并发-synchronized关键字分析

文章目录

2020-03-19 18:58:42 226

原创 买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 =6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 ...

2020-03-16 16:16:15 179

原创 线程基础

文章目录1.基本概念2.进程和线程区别3.使用多线程的好处4.线程的生命周期5.线程创建方式1.基本概念进程:进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间或(虚空间),是系统运行程序的基本单位;进程是资源申请、调度和独立运行的单位。线程:线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某...

2020-03-16 16:13:29 189

原创 二叉树基础

文章目录1. 基本概念2.一些性质3.二叉树形式4.二叉树的遍历1.先序遍历2.中序遍历3.后序遍历4.层次遍历1. 基本概念在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。2.一些性质(1) 在非空二叉树中,第i层的结点总数不超过2i−12^{i-...

2020-03-11 23:43:47 204

原创 Redis缓存穿透、缓存击穿、缓存雪崩

文章目录1、背景2、概念3、解决方案1、缓存穿透2、缓存击穿3、缓存雪崩4、总结1、背景一般企业都会用到mysql等关系型数据库,当访问量不大的时候还可以支撑;当并发量高的时候,比如商品抢购或者主页访问瞬间较大的时候,直接到达db,可能会导致系统性能急剧下降一直瘫痪。db是面向磁盘的,磁盘IO是比较重的操作,性能较低。为了克服上述的问题,通常需要在客户端和db之间引入一层缓存NoSql技术,这...

2020-03-05 09:52:24 370 1

原创 布隆过滤器原理简介

文章目录1、基本概念2、示例3、影响误判的几个因素4、guava实现的BloomFilter5、总结1、基本概念本质上是一种数据结构,比较巧妙的概率型数据结构,本身是一个很长的二进制向量,存放的不是0就是1。特点是高校的插入和查询,可以用来告诉你“某样东西一顶不存在或者可能存在”。主要用来判断某一元素在某一集合中存不存在;相比于传统的List,Set,Map等数据结构,他更高效、占中空间更少,...

2020-03-04 15:14:35 4088

转载 java.util.function.Function的用法

转载自:https://www.orchome.com/935JDK 1.8 API包含了很多内建的函数式接口,在老Java中常用到的比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lambda上。现如今,我们则从Function常用函数入口,真正了解一下。nametypedescriptionCon...

2020-02-02 21:51:13 2032

原创 redis中海量key的访问

背景有一些特殊场景我们需要知道批量key的情况,尤其是一些带前缀的key,可能需要先获取到这些key,然后获取或者更新value。keys命令的问题keys命令可以模糊匹配获取批量key,但是其算法是遍历算法,负责度是o(n),也就是数据量越大,时间复杂度越高;数据量达到几百万,就会导致redis服务卡顿,因为redis是单线程程序,顺序执行所有指令,其他指令必须等到当前keys命令执行完...

2019-12-17 19:42:20 354

转载 复杂度分析总结

一、什么是复杂度分析?1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。二、为什么要进行复杂度分析?1.和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高...

2018-12-17 16:09:15 254

转载 Solr学习总结(六)solr的函数查询Function Queries

摘要: 函数查询允许你使用一个或多个数字字段的真实值生成一个相关性分数,函数查询在standard,DisMax,eDisMax下都能使用。 查询函数可以是敞亮,字段或者其他函数的组合。使用函数可以影响结果的排序。本文整理自Solr官方文档:https://lucene.apache.org/solr/guide/6_6/function-queries.html使用Function Query

2017-12-27 16:44:58 2993

原创 Solr学习总结(五)dataimport

从mysql导入数据到solr中配置:1.cd solr-server/apache-tomcat-8.5-solr/solrhome/contrib/dataimporthandler/lib 导入solr-dataimporthandler-7.1.0.jar 和 mysql-connector-java-5.1.17.jar 包 没有lib文件夹的话,自己创建一个2.修改mydatacor

2017-12-25 16:53:49 1184 1

原创 Solr学习总结(四)ik分词配置

下载地址: http://files.cnblogs.com/files/zhangweizhong/ikanalyzer-solr5.zip1.将ik的jar包copy到 solr/WEB-INF/lib 下2.在solr_home/mydatacore/conf/managed-schema 文件中增加如下配置<fieldType name="text_ik" class="solr.Text

2017-12-25 15:34:12 795

转载 Solr学习总结(三)solr查询

一.基本查询  q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=:,  fl 指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id,title,sort  start 返回结果的第几条记录开始,一般分页用,默认0开始  rows 指定返回结果最多有多少条记录,默认值为 10,配合start实现分页  sort 排序方式,例如id desc 表示按照

2017-12-22 18:05:03 609

原创 Solr学习总结(二)solr核心core创建

solr部署启动成功之后,需要创建core才可以使用的,以下是创建core的步骤1.首先需要创建solrhome(注:solr的核心目录跟solr应用是可以分开的,因此不要放在solr应用的目录下,以免后面solr索引文件太大导致tomcat当掉),选择D或E盘,创建一个目录solr_home(注:这个目录的名字可以自己定义)2.找到之前解压的solr文件目录,打开solr-7.1.0\server

2017-12-22 17:05:16 8472 2

原创 Solr学习总结(一)两种启动方式

一. Solr简介Apache Solr是一个功能强大的搜索服务器,它支持REST风格API。Solr是基于Lucene的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。它使用 Apache Zookeeper特别针对高流量进行优化。Apache Solr提供各式各样的功能,我们列出了部分最主要的功能。 1.先进的全文搜索功能 2.XML,JSON和H

2017-12-22 16:29:41 9253 1

原创 mysql 简单命令

mysql命令

2017-06-09 17:49:04 429

原创 linux下安装mysql

linux 下mysql安装 权限设置 字符集设置

2017-06-09 17:38:41 481

转载 maven如何为不同的环境打包-开发、测试、生产环境

maven如何为不同的环境打包-开发、测试、生产环境

2016-12-02 15:16:17 1152

转载 python简单目录遍历和文件拷贝

使用到的模块有os,os.path,shutil遍历os.listdir值能遍历到当前目录下的文件和目录(一级目录),如需遍历所有的文件需要使用递归 import os

2016-12-02 14:36:16 13978

原创 webp格式图片调研

webp格式图片调研webp格式图片,是google开发的一中旨在加快图片加载速度的图片格式。支持有损压缩和无损压缩,派生自图像编码格式VP8。根据 Google 的测试,无损压缩后的 WebP比PNG文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,WebP还是可以减少 28% 的文件大小。经过我们自己测试,发现jpg,png转webp格式之后,图片体积大小大概缩小为原

2016-08-17 16:08:17 3782

原创 fiddler简单使用

1.简介2.安装配置3.常用的一些点1.简介Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。Fiddler是

2016-08-01 18:32:25 5086

原创 关于最近使用imageMagick的Jmagick和im4java

JmagickMagick是一个开源API,利用JNI(Java Native Interface)技术实现了对ImageMagick API的Java访问接口,因此也将比纯Java实现的图片操作函数在速度上要快。JMagick只实现了ImageMagicAPI的一部分功能,它的发行遵循LGPL协议. 使用Jmagick需要下载jmagick.jar和jmagick.dll,以及需要安装image

2016-06-23 21:56:59 6492 2

原创 redis for hash操作简单总结

概述:Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:   ●Lists (列表)   ●Sets (集合)   ●Sorted sets (有

2016-06-23 10:57:44 9455

原创 CentOS重置root密码

进入启动界面,按e进入编辑页面,找到linux16这一行,把“ro”替换成“rw init=/system/bin/sh” chroot /sysroot passwd root 输入密码: 确定密码: touch /.autorelabel exit reboot -f

2016-05-05 14:13:45 514

原创 CentOS7卸载自带jdk以及安装Sun公司的jdk

卸载自带jdk查询自带jdk版本 rpm -qa | grep java 或者 rmp -qa | grep jdk通过查询得知的jdk版本为java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64和java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64 有两个版本,这两个都需要卸载 卸载命令 rpm -e –node

2016-05-04 18:11:01 2844

原创 阿里云日志服务基础

阿里云日志服务使用

2016-04-29 17:07:54 10157

转载 Linux常用命令总结

红色加粗表示使用频率很高的命令:man 具体命令,比如man -ls   可以查询ls命令的具体用法,帮助cd /usr/local   切换到/usr/local目录下su  mysql   或者  su -mysql切换当前活动用户为mysqlls 显示当前文件夹内的文件ll

2016-01-18 18:40:42 497

空空如也

空空如也

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

TA关注的人

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