<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ikunkun博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LSKCGH</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LSKCGH]]></copyright><item><title><![CDATA[redis大key和热key探讨与实践]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/143769951</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/143769951</guid><author>LSKCGH</author><pubDate>Thu, 14 Nov 2024 14:17:57 +0800</pubDate><description><![CDATA[本文会探讨大key和热key产生的原因，引发的问题以及一些常用优化措施]]></description><category></category></item><item><title><![CDATA[一文全面揭开explain的真实面目]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/143696666</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/143696666</guid><author>LSKCGH</author><pubDate>Mon, 11 Nov 2024 22:20:23 +0800</pubDate><description><![CDATA[表示当SQL中有一个地方需要对一些数据进行排序的时候，优化器找不到能够使用的索引，所以只能使用外部的索引排序，外部排序就不断的在磁盘和内存中交换数据，这样就摆脱不了很多次磁盘IO，以至于SQL执行的效率很低。反过来，如果建立了索引，由于索引的底层是B+Tree实现的，他的叶子节点本来就是有序的。先从C表中取出数据，然后再和S表进行匹配，C中取出的数据和S中的id匹配，因为S表中id是主键，因此S.id是不重复的且是唯一的，因此只能出现一个id和sid相等的情况，因此S表中的type是eq_ref。]]></description><category></category></item><item><title><![CDATA[java项目应用webSocket的两种主要方式]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/143628287</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/143628287</guid><author>LSKCGH</author><pubDate>Fri, 08 Nov 2024 15:59:31 +0800</pubDate><description><![CDATA[笔者之前的项目中需要用webSocket协议进行长连接上游供应商，笔者为此做了一些小小的技术预研，主要是javax和netty，特将此记录下来。]]></description><category></category></item><item><title><![CDATA[惊人发现：clickhouse的cpu暴增之谜]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/141825466</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/141825466</guid><author>LSKCGH</author><pubDate>Mon, 02 Sep 2024 17:57:51 +0800</pubDate><description><![CDATA[clickhouse的cpu暴增的分析以及对clickhouse的merge和mutation操作进行分析]]></description><category></category></item><item><title><![CDATA[spring cloud中实现接口广播请求到服务提供者]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/129952484</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/129952484</guid><author>LSKCGH</author><pubDate>Tue, 04 Apr 2023 15:12:11 +0800</pubDate><description><![CDATA[spring cloud中实现接口广播请求到服务提供者]]></description><category></category></item><item><title><![CDATA[史上最全零拷贝总结]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/129866080</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/129866080</guid><author>LSKCGH</author><pubDate>Thu, 30 Mar 2023 20:52:18 +0800</pubDate><description><![CDATA[介绍零拷贝技术]]></description><category></category></item><item><title><![CDATA[protobuf编解码研究]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/110134314</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/110134314</guid><author>LSKCGH</author><pubDate>Wed, 25 Nov 2020 17:17:48 +0800</pubDate><description><![CDATA[背景

一.优势

1、json: 一般的web项目中，最流行的主要还是json。因为浏览器对于json数据支持非常好，有很多内建的函数支持。 
2、xml: 在webservice中应用最为广泛，但是相比于json，它的数据更加冗余，因为需要成对的闭合标签。json使用了键值对的方式，不仅压缩了一定的数据空间，同时也具有可读性。 
3、protobuf:是后起之秀，是谷歌开源的一种数据格式，适合高性能，对响应速度有要求的数据传输场景。因为profobuf是二进制数据格式，需要编码和解码。数据本身不具有可读]]></description><category></category></item><item><title><![CDATA[Row size too large (> 8126)的解决方法]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/105286746</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/105286746</guid><author>LSKCGH</author><pubDate>Fri, 03 Apr 2020 13:09:43 +0800</pubDate><description><![CDATA[stackOverflow上的解决方法


]]></description><category></category></item><item><title><![CDATA[java获取项目根路径的方法]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/105254891</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/105254891</guid><author>LSKCGH</author><pubDate>Wed, 01 Apr 2020 20:36:20 +0800</pubDate><description><![CDATA[1，System.getProperty(“user.dir”)

]]></description><category></category></item><item><title><![CDATA[论TCP粘包和拆包产生的根本原因]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/105057517</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/105057517</guid><author>LSKCGH</author><pubDate>Tue, 24 Mar 2020 10:31:16 +0800</pubDate><description><![CDATA[前序:相信熟悉网络的同学都知道，TCP是面向流的，啥是面向流？谢希仁之&lt;&lt;计算机网络&gt;&gt;中有段话，个人觉得描述得非常贴切:

这就是传输层提交给应用层的发生粘包和拆包的根本原因，TCP协议视一切如流，它并不知道上层应用需要的是啥，只是在保证有序的情况下在适当的时机将数据提交给应用层处理。
现在业界解决的粘包和拆包的方案主要有四个:
1：消息定长，例如每个报文的大小固定的20...]]></description><category></category></item><item><title><![CDATA[关于同一条TCP链接数据包到达顺序的问题]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/105007013</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/105007013</guid><author>LSKCGH</author><pubDate>Sat, 21 Mar 2020 12:04:19 +0800</pubDate><description><![CDATA[前序：
最近一直疑惑，tcp能不能保证应用层发包的顺序性？例如client A给server B按时间先后分别发送 c和d包（即是先发c包，再发d包），但是因为网络的复杂性，并不能保证c包一定比d包先到（因为走的链路有可能不同），那tcp是怎样保证的呢？如果不能保证，平时写的程序就会出现很多问题（例如假如c包是要查询一个用户的信息，d包是要删除用户的信息，那如果d包先到后就交给应用层的话，删除了这...]]></description><category></category></item><item><title><![CDATA[linux常用命令]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/104919587</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/104919587</guid><author>LSKCGH</author><pubDate>Tue, 17 Mar 2020 13:06:11 +0800</pubDate><description><![CDATA[@TOC常用的linux命令
jps系列
jps -v (输出jvm参数)
ps系列
1，ps 与grep 常用组合用法，查找特定进程 ps -ef | grep ssh
2，列出目前所有的正在内存当中的程序 ps aux 可以结合grep使用例如ps aux | grep game/java
top系列

-a 按内存使用情况排序。此开关最重要的是按分配内存对进程进行排序。
top -H -p ...]]></description><category></category></item><item><title><![CDATA[redis的五种数据类型详细图解]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/104204374</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/104204374</guid><author>LSKCGH</author><pubDate>Fri, 07 Feb 2020 00:00:46 +0800</pubDate><description><![CDATA[众所周知，redis有五种数据类型

string（字符串）
	lists(列表)
	sets（无序的字符串集合）
	zsets（有序的字符串集合）
	hashs（哈希类型）
一，string（字符串类型）

在Redis中字符串类型的Value最多可以容纳的数据长度是512M





二，存储lists类型

在Redis中，List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表...]]></description><category></category></item><item><title><![CDATA[redis实现分布式锁]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/104203955</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/104203955</guid><author>LSKCGH</author><pubDate>Thu, 06 Feb 2020 23:17:23 +0800</pubDate><description><![CDATA[现在实现分布式锁的技术有以下三种：

一，基于数据库

在数据库中创建一个表，表中包含方法名等字段，并在方法名字段上创建唯一索引，想要执行某个方法，就使用这个方法名向表中插入数据，成功插入则获取锁，执行完成后删除对应的行数据释放锁。

这种实现方式很简单，但是对于分布式锁应该具备的条件来说，它有一些问题需要解决及优化。

因为是基于数据库实现的，数据库的可用性和性能将直接影响分布式锁的可用性及性能...]]></description><category></category></item><item><title><![CDATA[深入理解java的双亲委派模式]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/103157399</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/103157399</guid><author>LSKCGH</author><pubDate>Wed, 20 Nov 2019 10:21:30 +0800</pubDate><description><![CDATA[博主很懒，啥也没写....

直接放链接，写得太好了https://www.ibm.com/developerworks/cn/java/j-lo-classloader/
]]></description><category></category></item><item><title><![CDATA[MemoryAnalyzer的使用]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/101720565</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/101720565</guid><author>LSKCGH</author><pubDate>Sun, 29 Sep 2019 22:14:26 +0800</pubDate><description><![CDATA[一，首先用命令查看java所占的线程：jps -lv，第一个数字就是pid

二，用命令：jmap -dump:format=b,file=xx.bin pid就可以生成对应的dump文件了

三，然后用xftp下载xx.bin在本地

四，最后就可以用MemoryAnalyzer进行分析
...]]></description><category></category></item><item><title><![CDATA[spring向容器中注册bean的方式]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/101267053</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/101267053</guid><author>LSKCGH</author><pubDate>Tue, 24 Sep 2019 10:34:38 +0800</pubDate><description><![CDATA[前言：最近在研究spring的东西，特将向spring中注册bean的方式总结一下

本文参考的文章如下：https://www.cnblogs.com/yejg1212/p/10074925.html

https://blog.youkuaiyun.com/f641385712/article/details/89518940

一，通过xml配置文件，例如：


&lt;bean class=""&gt...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap源码分析]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/98394315</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/98394315</guid><author>LSKCGH</author><pubDate>Sat, 03 Aug 2019 23:50:54 +0800</pubDate><description><![CDATA[近期博主在看jdk的map相关的东西，网上的大牛已经写得很好的了，特将所看的文章记录下来

原文链接：https://juejin.im/post/5d06f6cb6fb9a07ec42b5ae0

接下来介绍ConcurrentHashMap，面是它的类关系图。



JDK1.7中的实现

JDK1.7 中的ConcurrentHashMap采用了分段锁的设计，先来看一下它的数据结构。Conc...]]></description><category></category></item><item><title><![CDATA[深入理解java内存模型]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/97617381</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/97617381</guid><author>LSKCGH</author><pubDate>Sun, 28 Jul 2019 18:29:39 +0800</pubDate><description><![CDATA[最近看到一篇比较好的介绍java内存模型的文章，特记录下来

原文参考：https://juejin.im/post/5bf2977751882505d840321d

下文据原作者是看了《深入学习java虚拟机》总结出来的，博主也得找个时间去看看这本优秀的书才行了

一，内存模型产生背景

   在介绍Java内存模型之前，我们先了解一下物理计算机中的并发问题，理解这些问题可以搞清楚内存...]]></description><category></category></item><item><title><![CDATA[idea的快捷键技巧与总结]]></title><link>https://blog.youkuaiyun.com/LSKCGH/article/details/97558181</link><guid>https://blog.youkuaiyun.com/LSKCGH/article/details/97558181</guid><author>LSKCGH</author><pubDate>Sat, 27 Jul 2019 21:43:55 +0800</pubDate><description><![CDATA[一，几个智能补全的姿势

参考文章：https://mp.weixin.qq.com/s/7MI-WNBePwK9WNHGz6DnNA

要介绍的快捷方法就是如下图这些：



1，快速打印输出：sout

2，快速定义局部变量：在值后面输入.var

3，快速定义成员变量：在值的后面输入.field

4，快速格式化字符串：在值的后面输入.format

5，快速判断（非）空：在值的后面输入.n...]]></description><category></category></item></channel></rss>