<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chouhui0263的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chouhui0263</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chouhui0263]]></copyright><item><title><![CDATA[Redisson分布式锁深入解析（二）]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744283</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744283</guid><author>chouhui0263</author><pubDate>Thu, 09 Aug 2018 17:52:00 +0800</pubDate><description><![CDATA[上一篇文章主要侧重如何获取锁以及所获取成功的场景，本文将着重对失败以及解锁的情况进行分析，探寻Redisson分布式锁最具艺术的地方。 
@Override
    public boolean tryLock(long waitTime, long leaseTime, TimeUnit ...]]></description><category></category></item><item><title><![CDATA[Redission分布式锁源码解析]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744279</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744279</guid><author>chouhui0263</author><pubDate>Mon, 30 Jul 2018 17:38:00 +0800</pubDate><description><![CDATA[Redission锁继承Implements Reentrant Lock，所以具备 Reentrant Lock 锁中的一些特性：超时，重试，可中断等。加上Redission中Redis具备分布式的特性，所以非常适合用来做Java中的分布式锁。 下面我们对其加锁、解锁过程中的源码细节进行一一...]]></description><category></category></item><item><title><![CDATA[设计模式的原则]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744278</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744278</guid><author>chouhui0263</author><pubDate>Wed, 14 Mar 2018 10:38:00 +0800</pubDate><description><![CDATA[设计模式的六大原则： 总原则－开闭原则 对扩展开放，对修改封闭。在程序需要进行拓展的时候，不能去修改原有的代码，而是要扩展原有代码，实现一个热插拔的效果。所以一句话概括就是：为了使程序的扩展性好，易于维护和升级。 想要达到这样的效果，我们需要使用接口和抽象类等，后面的具体设计中我们会提到这点。...]]></description><category></category></item><item><title><![CDATA[JVM垃圾收集器]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744277</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744277</guid><author>chouhui0263</author><pubDate>Sat, 10 Feb 2018 11:08:00 +0800</pubDate><description><![CDATA[简介： 
  Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定，因此不同的厂商、不同的版本的虚拟机所提供的垃圾收集器都可能会有很大的差别，并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。Sun HotSpot虚拟机1.6板虚拟机所包含的收集器如下...]]></description><category></category></item><item><title><![CDATA[Java如何判断对象已死？]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744276</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744276</guid><author>chouhui0263</author><pubDate>Fri, 09 Feb 2018 15:15:00 +0800</pubDate><description><![CDATA[Java堆中几乎存放着Java世界中所有的对象实例，垃圾收集器在对堆进行回收前，第一件事情就是要确定这些对象有哪些还是存活着，哪些已经死去。 
1：引用计数法：最主要因为该算法无法解决对象之间的相互循环引用的问题，Java语言没有选用引用计数算，这里不多做介绍 
2：根搜索算法（GC Root...]]></description><category></category></item><item><title><![CDATA[Redis Cluster集群功能的限制]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744275</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744275</guid><author>chouhui0263</author><pubDate>Wed, 17 Jan 2018 10:53:00 +0800</pubDate><description><![CDATA[Redis集群相对单机在功能上存在一些限制，需要我们提前了解，在使用时做好规避。限制如下： 
 
 key批量操作支持有限。如mset、mget，目前只支持具有相同slot值的key执行批量操作。对弈映射为不同slot值的key由于执行mget。mset等操作可能存在多个节点上，因此不被支持。...]]></description><category></category></item><item><title><![CDATA[Redis Cluster数据分布原理]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744271</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744271</guid><author>chouhui0263</author><pubDate>Wed, 17 Jan 2018 10:35:00 +0800</pubDate><description><![CDATA[Redis Cluster是Redis的分布式解决方案，在3.0版本正式推出，有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时，可以采用Cluster架构方案到达负载均衡的目的。之前，Redis分布式方案一般有两种： 
 
 客户端分区方案，有点事分区逻辑可控，确定是...]]></description><category></category></item><item><title><![CDATA[Redis的内存回收机制]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744270</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744270</guid><author>chouhui0263</author><pubDate>Tue, 16 Jan 2018 16:31:00 +0800</pubDate><description><![CDATA[Redis的内存回收机制主要体现在一下两个方面： 
 
 删除过期时间的键对象 
 
 
 删除过期键对象 
 
    ：多行删除用于当客户端读取带有超市属性的键时，如果已经超过键设置的过期时间，会执行删除操作并返回空。 
  2.定时任务删除 
     ：R...]]></description><category></category></item><item><title><![CDATA[Redis开发与运维阅读笔记（一）]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744269</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744269</guid><author>chouhui0263</author><pubDate>Tue, 16 Jan 2018 14:30:00 +0800</pubDate><description><![CDATA[Redis特性 
 
（一）速度快 
1：存取速度快 
2：执行速度快 
3：Redis使用了单线程架构，预防了多线程产生的竞争问题 
（二）基于键值对的数据结构服务器 
（三）丰富的功能 
1：提供键过期功能 
2：提供了发布订阅功能 
3：支持Lua脚本 
4：提供了简单的事务功能，...]]></description><category></category></item><item><title><![CDATA[Cookies 和 Session的区别]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744265</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744265</guid><author>chouhui0263</author><pubDate>Thu, 11 Jan 2018 11:18:00 +0800</pubDate><description><![CDATA[1.cookie是一种发送到客户端浏览器的文本串句柄，并保存在客户机硬盘上，可以用来在某个web站点绘画期间持久的保持数据 
2.session其实指的就是访问者从到达某一个特定主页到离开为止的那段时间。session其实是利用cookie技术进行处理的，当用户首次进行请求后，服务端就会创建一...]]></description><category></category></item><item><title><![CDATA[Java Callable Future Example]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744263</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744263</guid><author>chouhui0263</author><pubDate>Wed, 10 Jan 2018 14:53:00 +0800</pubDate><description><![CDATA[Java Callable and Future are used a lot in multithreaded programming. In last few posts, we learned a lot aboutjava threadsbut sometimes we wish ...]]></description><category></category></item><item><title><![CDATA[Java Thread wait, notify and notifyAll Example]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744261</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744261</guid><author>chouhui0263</author><pubDate>Wed, 10 Jan 2018 10:53:00 +0800</pubDate><description><![CDATA[The Object class in java contains three final methods that allows threads to communicate about the lock status of a resource. These methods arewai...]]></description><category></category></item><item><title><![CDATA[Java Thread join]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744257</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744257</guid><author>chouhui0263</author><pubDate>Wed, 10 Jan 2018 10:13:00 +0800</pubDate><description><![CDATA[public final void join(): This java thread join method puts the current thread on wait until the thread on which it’s called is dead. If the thread...]]></description><category></category></item><item><title><![CDATA[Thread Life Cycle in Java]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744255</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744255</guid><author>chouhui0263</author><pubDate>Tue, 09 Jan 2018 17:53:00 +0800</pubDate><description><![CDATA[New 
When we create a new Thread object usingnewoperator, thread state is New Thread. At this point, thread is not alive and it’s a state intern...]]></description><category></category></item><item><title><![CDATA[TCP连接的握手]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744254</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744254</guid><author>chouhui0263</author><pubDate>Tue, 09 Jan 2018 15:23:00 +0800</pubDate><description><![CDATA[（一）三次握手 
建立一条新的TCP连接时，是指是在发送任意数据之前，TCP连接之间交换一些的IP分组，对连接的有关参数进行沟通（如下图），如果连接只用来传送少量数据，这些交换就会严重降低HTTP的性能。 
 
TCP连接握手需要经过以下几个步骤。 
(1) 请求新的TCP连接时，客户端要向服...]]></description><category></category></item><item><title><![CDATA[基于Redis的分布式限流系统的设计]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744253</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744253</guid><author>chouhui0263</author><pubDate>Mon, 08 Jan 2018 16:40:00 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/AndyAo/p/8144049.html
                                                    
转载于:https://my.oschina.net/u/2313177/blog/160406...]]></description><category></category></item><item><title><![CDATA[HTTP1.0 、 HTTP1.1与HTTP2.0的主要区别]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744249</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744249</guid><author>chouhui0263</author><pubDate>Wed, 20 Dec 2017 17:18:00 +0800</pubDate><description><![CDATA[HTTP1.0 VS HTTP1.1 
 
 长连接： 
 
HTTP1.0需要使用keep-alive参数来告知服务器端要建立一个长连接，而HTTP1.1默认支持长连接（PersistentConnection）和请求的流水线（Pipelining）处理，在一个TCP连接上可以传送多个HTT...]]></description><category></category></item><item><title><![CDATA[Redis分布式锁实现]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744248</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744248</guid><author>chouhui0263</author><pubDate>Fri, 15 Dec 2017 14:34:00 +0800</pubDate><description><![CDATA[Redis锁主要用到了Redis中的以下几个API，这里引用官方的API文档介绍说明一下： 
SETNX 
Set key to hold string value if key does not exist. In that case, it is equal to SET. When ke...]]></description><category></category></item><item><title><![CDATA[Mysql索引失效之隐式转换]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744246</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744246</guid><author>chouhui0263</author><pubDate>Wed, 13 Dec 2017 12:37:00 +0800</pubDate><description><![CDATA[SkuId` varchar(32) NOT NULL COMMENT 'SkuId', 
 
 
 `SkuId` bigint(32) NOT NULL COMMENT 'SkuId', 
 
 
根据以上现象我们可以看出当数据库字段为int类型的时候，入参类型无论是字符串还是int，都...]]></description><category></category></item><item><title><![CDATA[认识非阻塞的同步机制CAS]]></title><link>https://blog.youkuaiyun.com/chouhui0263/article/details/100744243</link><guid>https://blog.youkuaiyun.com/chouhui0263/article/details/100744243</guid><author>chouhui0263</author><pubDate>Tue, 12 Dec 2017 21:10:00 +0800</pubDate><description><![CDATA[锁有什么劣势 
在多线程并发的场景当中，可以通过加锁来保证线程安全性，但多个线程同时请求锁，很多情况下避免不了要借助操作系统，线程挂起和恢复会存在很大的开销，并存在很长时间的中断。一些细粒度的操作，例如同步容器，操作往往只有很少代码量，如果存在锁并且线程激烈地竞争，调度的代价很大。 
总结来...]]></description><category></category></item></channel></rss>