<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hlx156的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hlx156</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hlx156]]></copyright><item><title><![CDATA[Redis优化]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/108086570</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/108086570</guid><author>hlx156</author><pubDate>Wed, 19 Aug 2020 23:38:17 +0800</pubDate><description><![CDATA[Redis 设计优化
1 估算Redis内存使用量
要估算redis中的数据占据的内存大小，需要对redis的内存模型有比较全面的了解，包括hashtable、sds、redisobject、各种对象类型的编码方式等。
下面以最简单的字符串类型来进行说明。
假设有90000个键值对，每个key的长度是10个字节，每个value的长度也是10个字节（且key和
value都不是整数）；

下面来估算这90000个键值对所占用的空间。在估算占据空间之前，首先可以判定字符串类型使用的编码方式：embstr。
90]]></description><category></category></item><item><title><![CDATA[Mysql索引]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/108067056</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/108067056</guid><author>hlx156</author><pubDate>Tue, 18 Aug 2020 00:22:11 +0800</pubDate><description><![CDATA[MySQL索引篇
一、一条Select语句
select * from city WHERE city_id=1

执行流程：

二、索引介绍
1、索引是什么

官方介绍索引是帮助***MySQL高效获取数据的数据结构***。更通俗的说，数据库索引好比是一本书前面的目录，能加快数据库的查询速度。
一般来说索引本身也很大，不可能全部存储在内存中，因此索引往往是存储在磁盘上的文件中的（可能存储在单独的索引文件中，也可能和数据一起存储在数据文件中）。
我们通常所说的索引，包括聚集索引、覆盖索引、组合索引、前缀索引]]></description><category></category></item><item><title><![CDATA[sonar java和xml插件包]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/107143825</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/107143825</guid><author>hlx156</author><pubDate>Sun, 05 Jul 2020 19:49:35 +0800</pubDate><description><![CDATA[java编写xml自定扫描规则所需要的包


&lt;dependency&gt;
   &lt;groupId&gt;org.sonarsource.analyzer-commons&lt;/groupId&gt;
   &lt;artifactId&gt;sonar-xml-parsing&lt;/artifactId&gt;
   &lt;version&gt;1.10.2.456&lt;/version&gt;
&lt;/dependency&gt;



记录一下，具体使用之后再写
...]]></description><category></category></item><item><title><![CDATA[ercharts 仪表盘]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/82691455</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/82691455</guid><author>hlx156</author><pubDate>Thu, 13 Sep 2018 17:20:49 +0800</pubDate><description><![CDATA[ 


           var c8 = echarts.init(document.querySelector('#c8'));
           c8.setOption({
                   
            tooltip : {
                formatter: &quot;{a} &amp;lt;br/&amp;gt;{c} {b}&quot;
         ...]]></description><category></category></item><item><title><![CDATA[ercharts 柱状图]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/82691241</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/82691241</guid><author>hlx156</author><pubDate>Thu, 13 Sep 2018 17:11:11 +0800</pubDate><description><![CDATA[

 

1.多颜色柱状图

      多个不同颜色的seriesData，1,2,3排列，后面的会覆盖前面的，主要属性是series中的barGap: '-100%',barCategoryGap: '60%'。

      多颜色单柱和多颜色多柱的区别，就是barGap和barCategoryGap，当没有这两个属性时，就是多柱子并列

      xAxis中的interval:0,  ...]]></description><category></category></item><item><title><![CDATA[ercharts 饼图]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/82690207</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/82690207</guid><author>hlx156</author><pubDate>Thu, 13 Sep 2018 16:33:21 +0800</pubDate><description><![CDATA[

单圆环

单圆环和大饼图的区别是  series中radius: ['55%', '70%']，55%为中心空的百分比，0时为大饼

中间想要显示字符，可以在title里面设置主标题和副标题内容位置

var c18 = echarts.init(document.querySelector('#cycle1'));
            c18.setOption({
          ...]]></description><category></category></item><item><title><![CDATA[ercharts 曲线图]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/82689842</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/82689842</guid><author>hlx156</author><pubDate>Thu, 13 Sep 2018 16:20:22 +0800</pubDate><description><![CDATA[ 



传入数据x轴数据axisData,标题数据legendData，图表数据seriesData，单位unit。

function getC5option(axisData,legendData, seriesData,unit,) {
                var option = {
                    tooltip: {//鼠标指向图表时显示的数据
 ...]]></description><category></category></item><item><title><![CDATA[线程与锁]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/81284697</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/81284697</guid><author>hlx156</author><pubDate>Mon, 30 Jul 2018 14:47:46 +0800</pubDate><description><![CDATA[锁保证了多个线程访问一个类时，表现的是正确行为，即保证了线程安全。

synchronized: 可以在任意对象及方法加上锁，而加锁的这段代码称为互斥区或临界区

当多个线程访问synchronized修饰的方法锁,会以按cpu的分配先后顺序，以排队的形式进行处理。
而在这个过程中，线程都会不断地尝试去获得这个锁，如果拿到了，就进入synchronized代码体内容；
拿不到时，还会继续尝试去获取...]]></description><category></category></item><item><title><![CDATA[spring aop实现简单的权限控制功能]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80974309</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80974309</guid><author>hlx156</author><pubDate>Tue, 10 Jul 2018 14:54:45 +0800</pubDate><description><![CDATA[1.权限控制流程如下2.数据库模型]]></description><category></category></item><item><title><![CDATA[Cookie中的domain属性]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80748379</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80748379</guid><author>hlx156</author><pubDate>Wed, 20 Jun 2018 16:52:25 +0800</pubDate><description><![CDATA[domian属性表示该cookie的作用域，如果当前网页的域名与其不一致，如在本机调试时，一个localhost，一个127.0.0.1，会导致Cookie在当前网页中取值为空字符串...]]></description><category></category></item><item><title><![CDATA[springboot整合mybatis过程中的配置（注解&&xml）]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80605054</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80605054</guid><author>hlx156</author><pubDate>Thu, 07 Jun 2018 10:24:06 +0800</pubDate><description><![CDATA[1.注解x在启动类添加@MapperScan扫描dao层接口2.xml除了在启动类添加@MapperScan外，还需要在application.yml添加mybatis的xml路径mapper-locations: classpath:mybatis/mapper/*.xml注意，classpath:后面默认是resources文件夹下的，如果想放到java文件夹下，需要在pom的build添加&amp;...]]></description><category></category></item><item><title><![CDATA[为什么重写equals方法时，必须重写hashcode方法]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80590761</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80590761</guid><author>hlx156</author><pubDate>Wed, 06 Jun 2018 10:23:55 +0800</pubDate><description><![CDATA[1.维护 hashCode 方法的常规协定，该协定声明相等对象必须具有相等的哈希码。2.hashcode是用于散列数据的快速存取，如利用hash结构集合类来存储数据时，都是根据存储对象的hashcode值来进行判断是否相同的。所以会出现一种可能，当重写equals方法后，判断对象相等，但其hashcode却不一致，这种相等可以看作为逻辑相等。当使用hash集合类时，存放时会根据该类的hashcod...]]></description><category></category></item><item><title><![CDATA[ajax发起跨域请求]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80312435</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80312435</guid><author>hlx156</author><pubDate>Mon, 14 May 2018 17:19:55 +0800</pubDate><description><![CDATA[ajax发起跨域请求1.jsonp跨域前端ajax	$.ajax({			type: 'GET',			url: 'http://localhost:80/thinkphp3.2.3/index.php?m=Home&amp;amp;c=Index&amp;amp;a=index',			dataType: &quot;jsonp&quot;,			//jsonp: &quot;callback&quot;,			//data: {'userid': ...]]></description><category></category></item><item><title><![CDATA[原子操作，内存可见性与指令重排序]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/80295537</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/80295537</guid><author>hlx156</author><pubDate>Sat, 12 May 2018 23:49:13 +0800</pubDate><description><![CDATA[&quot;原子操作(atomic operation)是不需要synchronized&quot;，这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始，就一直运行到结束，中间不会有任何 context switch (切 换到另一个

 

原子操作

      原子操作（atomic operation），是指不会被线程调度机制打断的操作；这种操作一旦开始，就一直...]]></description><category></category></item><item><title><![CDATA[MySQL存储过程命令及Navicat操作步骤]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/79658451</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/79658451</guid><author>hlx156</author><pubDate>Thu, 22 Mar 2018 21:44:47 +0800</pubDate><description><![CDATA[本次使用的数据库student里的student表，在本文最后，可以自行跟步骤练习一、windows使用CMD命令操作步骤    1.确定启动了mysql服务；    2.输入mysql -u账号 -p密码登录mysql；    3.显示数据库列表show datebases后，选择数据库use student；    4.然后再输入delimiter $定义结束符号后，再输入    mysql&amp;...]]></description><category></category></item><item><title><![CDATA[Nginx的反向代理及负载均衡]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/79502691</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/79502691</guid><author>hlx156</author><pubDate>Fri, 09 Mar 2018 22:23:07 +0800</pubDate><description><![CDATA[Nginx的应用场景1、http服务器。        Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。2、虚拟主机。    可以实现在一台服务器虚拟出多个网站。其中虚拟机的可以通过端口或者域名区分    2.1、端口区分虚拟机：通过不同的端口号可以访问到一个ip中不同的虚拟机网站    （1）在nginx.conf文件中添加一个Server节点，修改端口号。serve...]]></description><category></category></item><item><title><![CDATA[GC算法及Jvm的分代]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/78849877</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/78849877</guid><author>hlx156</author><pubDate>Wed, 20 Dec 2017 09:58:11 +0800</pubDate><description><![CDATA[在Java虚拟机中，给内存划分了三个代，根据不同的代使用不同的gc算法，在gc回收垃圾之前，我们应该先知道gc如何区分垃圾

GC如何区分垃圾

引用计数器

“引用计数”法通过统计控制生成对象和删除对象是的引用数来判断，在对象在添加一个引用计数器，每当有一个地方引用就+1，引用失效就-1，垃圾回收程序收集计数为0的对象即可。但是这种方法的缺陷是无法解决循环引用。

可达性分析

在主流垃圾判断算...]]></description><category></category></item><item><title><![CDATA[layui父页面获取子页面的窗口对象]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/78849579</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/78849579</guid><author>hlx156</author><pubDate>Wed, 20 Dec 2017 09:34:39 +0800</pubDate><description><![CDATA[在父页面的layer.open方法中的按钮点击回调方法中，使用以下方法，可以调用子页面中的js方法。 
一、 
//获得iframe窗口的id至，其中下面的‘customerServiceOpen’为layer.open方法中的id值 
var frameId=document.getElementById(‘customerServiceOpen’).getElementsByTagName(“i]]></description><category></category></item><item><title><![CDATA[JVM之新生代进入老年代]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/78849536</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/78849536</guid><author>hlx156</author><pubDate>Wed, 20 Dec 2017 09:30:58 +0800</pubDate><description><![CDATA[内存分配及回收策略——新生代如何进入老年代内容摘抄自周志明的《深入理解Java虚拟机2版》 
新生代GC（Minor GC）指发生在新生代的垃圾收集动作，因为Java对象大多都具备朝生夕灭的特性，所以Minor GC非常频繁，一般回收速度也比较快。老年代GC（Major GC/Full GC）指发生在老年代的GC，出现了Major GC，经常会伴随至少一次的Minor GC（但非绝对的，在Paral]]></description><category></category></item><item><title><![CDATA[Java对象的创建]]></title><link>https://blog.youkuaiyun.com/hlx156/article/details/78793491</link><guid>https://blog.youkuaiyun.com/hlx156/article/details/78793491</guid><author>hlx156</author><pubDate>Wed, 13 Dec 2017 16:36:32 +0800</pubDate><description><![CDATA[Java对象的创建虚拟机遇到一条new指令时，首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用，然后检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有，那必须先执行相应的类加载过程。类加载检查通过后，虚拟机会为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定，为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。“指针碰撞”假设Java堆中内存]]></description><category></category></item></channel></rss>