自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式锁的应用

mysql zk redismsql 加锁就是新增数据 解锁就是删除数据redis 分布式锁什么环境使用分布式锁jdk 中的锁只能解决一个进程多线程的锁 jvm锁思路应用场景有缺点redis 单进程 单线程分布式锁 用在1多进程2进行同一个数据读写信息3 操作数据互斥加锁通过setnx 向特定的key写入一个随机值,并同时是设置失效时间,写值成功既加锁成功注意点必...

2019-07-24 11:25:08 124

原创 HashMap

hashmap 是一个entry对象的数组 数组中的每一个entry元素 又是一个链表的头节点HashMap 是数组 + 链表 数据结构默认初始化容量 16 ,因子 0.75 元素12个然后rehash 每次2 的次方时间复杂度 0(1) 链表 0(n) jdk1.8 阈值 0(lgn)...

2019-02-25 18:02:56 500 1

原创 synchronized

synchronized锁在单线程下生效吗虽然有锁升级 但是也会生效多个线程持有对象监视器作为同一个对象的前提下,同一时间只有一个线程可以执行synchronized(任意自定义对象)同步代码快。监听锁 monitor 一个对象只有唯一的一个。synchronized 关键字使用的是对象监视器原理作为同步synchronized实现同步的基础:普通同步方法,锁是当前实例对象静态同步...

2019-02-21 10:47:01 313 1

原创 volatile

volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制。读取快 修改慢1.volatile保证可见性1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。2)禁止进行指令重排序。编译出来的只...

2019-02-21 10:19:04 224

原创 StringBuffer 和 StringBuilder 区别

1、StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,2、只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而StringBuffer...

2019-02-20 18:07:12 183 1

原创 线程基础总结

多线程是异步的,所以千万不要把eclipse 里的代码的顺序当成线程执行的顺序,线程被调用的时机是随机的。实现线程的方式 一种是继承thread 类 另一种是实现runnable 接口thread 不支持多继承 为了支持多继承可以实现runnable 方法start()通知线程规划器此线程已经准备就绪,等待调用线程对象的run()方法 这个过程其实就是让系统安排一个时间来调用thread ...

2019-02-18 18:16:02 122

原创 ZAB协议

zookeeper就是paxos算法的一个实现并不对。zookeeper并没有完全才有paxos算法,而是使用了一种称为ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法。ZAB协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的原子广播协议。ZAB不像paxos算法那样,是一种...

2019-02-18 15:25:41 205 1

原创 Paxos算法

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。[1]目录1 问题和假设2 算法2.1 算法的提出与证明2.2 算法的内容2.2.1 决议的提出与批准2.2.2 实例2.2.2.1 情况一2.2.2.2 情况二2.2.2.3 情况三2.2.3 决议的发布2.2.4 ...

2019-02-15 16:53:16 222 1

原创 集合的时间复杂度

ListarrayList linkedlistarraylist 可增长的数组长度 查询快 get() set() 常数级插入和现有所有项的删除代价昂贵 除非在表的末端ArrayList 是线性表(数组)get() 直接读取第几个下标,复杂度 O(1)add(E) 添加元素,直接在后面添加,复杂度O(1)add(index, E) 添加元素,在第几个元素后面插入,后面的元素需要向后...

2019-02-15 10:32:02 6078

原创 Thread 和 启动线程几种方式

启动线程几种方式第一种:1】d定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体。2】创建Thread子类的实例,也就是创建了线程对象3】启动线程,即调用线程的start()方法 注:(start ()是真正的启用了线程 run() 只是thread类的一个方法)第二种:A类实现runnable 重写run 方...

2019-02-15 10:20:09 8117 1

原创 Unsafe

qeqweq

2019-02-13 14:39:01 307

原创 es 批量修改数据里面的值

【代码】es 批量修改数据里面的值。

2023-06-15 18:12:53 508

原创 实战-用top和jstack命令查找线上CPU消耗过高的线程

cpu 过高

2023-01-06 16:03:23 155 1

原创 定位到浏览器的输入框

快捷键

2022-12-16 00:05:51 331

原创 es 通过大小更新

es 大小更新

2022-10-16 16:49:01 119

原创 es 随机查询几条

es

2022-07-28 22:20:13 773

原创 es routing的用法

http://localhost:8888/test/test1/106?routing=testroutehttp://localhost:8888/test/test1/106?routing=testroute,testroute1

2022-07-11 15:39:54 239

原创 es 新增节点后,分片会自动移动吗

es 分片

2022-07-07 14:51:11 412

原创 mysql 本地文件的位置

mysql

2022-06-07 11:09:34 90

原创 redo 理解

redo

2022-06-07 09:50:55 225

原创 jvm 卡表

我们知道,JVM在进行垃圾收集时,需要先标记所有可达对象,然后再清除不可达对象,释放内存空间。那么,如何快速的找到所有可达对象呢?最简单粗暴的实现,就是每次进行垃圾收集时,都对整个堆中的所有对象进行扫描,找到所有存活对象。逻辑是简单,但性能比较差。简单粗暴的实现方式,通常都是不可取的。那JVM是如何实现快速标记可达对象的?答案是GC Roots。GC Roots是垃圾收集器寻找可达对象的起点,通过这些起始引用,可以快速的遍历出存活对象。GC Roots最常见的是静态引用和堆栈的局部引用变量。然而,这

2022-05-27 10:55:06 551

原创 应用层的拆包和粘包

应用层的拆包和粘包简介拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。而如果通讯的一端发送的数据包超过一次tcp报文所能传输的最大值时,就会将一个数据包拆成多个最大tcp长度的tcp报文分开传输,这就叫做拆包。一些基本概念MTU泛指通讯协议中的最大传输单元。一般用来说明TCP/IP四层协议中数据链路层的最大传输单元,不同类型的网络MTU也会不同,我们普遍使用的以

2022-05-27 10:49:42 285

原创 tcp udp区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。UDPUDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。它有以下几个特点:1、面向无连接首先 UDP 是不需要和 TCP一

2022-05-27 10:44:30 2244

原创 mysql 更新查询出来的数据

UPDATE `book_info` b, (SELECT i.* FROM `book_tree` t LEFT JOIN `book_info` i ON t.`book_id` = i.`id` WHERE t.`two_level_id` = 5) t1 SET b.`with_file_type_name` = 5 WHERE b.`id` = t1.id 核心是 update 表1 表2

2022-05-25 21:59:57 744

原创 nginx反向代理后获取不到用户的真实ip

·nginx反向代理后获取不到用户的真实ip

2022-04-05 19:59:37 3536

原创 mysql 存储ip 且 ip 分段

mysql ip 黑白名单+白名单段

2022-04-03 20:31:28 1299

原创 pdf.js 屏蔽部分按钮

pdf.js 屏蔽部分按钮

2022-04-03 00:27:13 1662 1

原创 cas 面试题

1、cas 是机器里面那个关键字unsafe c++ 写的 comxchg2、cas java 的实现atomic 包下3、是什么锁乐观锁4、aba 问题解决CAS可以有效的提升并发的效率,但同时也会引入ABA问题。如线程1从内存X中取出A,这时候另一个线程2也从内存X中取出A,并且线程2进行了一些操作将内存X中的值变成了B,然后线程2又将内存X中的数据变成A,这时候线程1进行CAS操作发现内存X中仍然是A,然后线程1操作成功。虽然线程1的CAS操作成功,但是整个过程就是有问题的。比如链

2021-10-13 16:57:43 560

原创 一致性协议算法-2PC、3PC、Paxos、Raft、ZAB、NWR

https://baijiahao.baidu.com/s?id=1693824822611080380&wfr=spider&for=pc2pc3pcacidcapbasepaxosraft(paxos简化)zab(zk)nwr(亚马逊)

2021-09-28 20:33:24 145

原创 多线程的基础

操作系统:会有个多个进程一个进程多个线程线程都有各自的计算器、堆栈和局部变量等属性,并且都能够访问共享的内存变量。处理器(cpu时间片)在这些线程上高速切换,让使用者感觉到这些线程在同时执行。现在操作系统基本是采用时分的形式调度运行的线程,操作系统会分出一个一个时间片。线程会分到若干的时间片。java 天生适合多线程。priority 优先级默认5 优先级越高分配的时间片数量越多线程状态:初始 运行 阻塞 等待 超时等待 终止...

2021-09-13 19:34:59 108

原创 es嵌套查询示例

{ "_source": { "include": [ "level" ] }, "from": 0, "size": 500, "query": { "bool": { "must": [ { "nested": { "path": "level",

2021-08-15 19:16:38 718

原创 future method

ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(tojoyKafkaTopic, JSON.toJSONString(behaviorMessage)); future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() { ...

2021-08-05 11:23:15 135

原创 java 反射取值和重新赋值

package com.tojoy.customer.behaviorcollector.utils;import com.tojoy.customer.behaviorcollector.domain.BehaviorMessage;import java.lang.reflect.Field;public class BehaviorMessageUtil {public static BehaviorMessage behaviorMessageChange(BehaviorMessage .

2021-07-27 11:52:25 149

原创 去重的sql语句转变成es语句

sql 语句 转变成es 语句SELECT DISTINCT(systemId) FROM customer{ "size": 0, "aggs": { "group_by_tags": { "terms": { "field": "systemId.keyword" } } }}

2021-07-23 14:41:00 215

原创 windows bat 修改文件夹(包括批量)

REN ‘12-100.mp4’ 12-1000.mp4注意; 如果文件名有 空格或者非法字符 将文件名用双引号起来 单引号可不管用ren 其实就是cmd 修改批量操作就是excel 操作

2021-06-23 00:01:35 542

原创 mysql判断是小数还是整数

SELECT pub_date FROM book_info WHERE pub_date <>ROUND(pub_date,0)UPDATE book_info SET pub_date =0 WHERE (pub_date REGEXP ‘[^0-9.]’) =1

2021-06-16 21:09:38 2256

原创 java sql字符串后去除转义

https://tool.oschina.net/codeformat/json

2021-05-21 00:50:49 613

原创 mysql阿里云linux安装

https://help.aliyun.com/document_detail/116727.html

2021-04-28 09:34:28 55

原创 redis

redis 内容

2021-04-08 11:09:10 66

原创 git 403

git config --global --unset http.proxy

2021-03-18 10:00:32 74

空空如也

空空如也

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

TA关注的人

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