From b2114fb151791b80be66b35784514385abb3df92 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Fri, 15 Jun 2018 09:53:58 +0800 Subject: [PATCH] auto commit --- notes/Java 并发.md | 10 +++--- notes/Leetcode 题解.md | 2 +- notes/Redis.md | 31 +++++++++++++++--- pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png | Bin 0 -> 26624 bytes pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png | Bin 0 -> 25600 bytes 5 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png create mode 100644 pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png diff --git a/notes/Java 并发.md b/notes/Java 并发.md index cf221ce8..15a06274 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -1585,7 +1585,7 @@ ThreadLocal 从理论上讲并不是用来解决多线程并发问题的,因 互斥同步的进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。自旋锁的思想是让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状态。 -自选锁虽然能避免进入阻塞状态从而减少开销,但是它需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。自旋次数的默认值是 10 次,用户可以使用虚拟机参数 -XX:PreBlockSpin 来更改。 +自选锁虽然能避免进入阻塞状态从而减少开销,但是它需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。 在 JDK 1.6 中引入了自适应的自旋锁。自适应意味着自旋的次数不再固定了,而是由前一次在同一个锁上的自旋次数及锁的拥有者的状态来决定。 @@ -1593,7 +1593,7 @@ ThreadLocal 从理论上讲并不是用来解决多线程并发问题的,因 锁消除是指对于被检测出不可能存在竞争的共享数据的锁进行消除。 -锁消除主要是通过逃逸分析来支持,如果堆上的共享数据不可能逃逸出去被其它线程访问到,那么就可以把它们当成私有数据对待,也就可以将它们上的锁进行消除。 +锁消除主要是通过逃逸分析来支持,如果堆上的共享数据不可能逃逸出去被其它线程访问到,那么就可以把它们当成私有数据对待,也就可以将它们的锁进行消除。 对于一些看起来没有加锁的代码,其实隐式的加了很多锁。例如下面的字符串拼接代码就隐式加了锁: @@ -1603,7 +1603,7 @@ public static String concatString(String s1, String s2, String s3) { } ``` -String 是一个不可变的类,Javac 编译器会对 String 的拼接自动优化。在 JDK 1.5 之前,会转化为 StringBuffer 对象的连续 append() 操作,在 JDK 1.5 及以后的版本中,会转化为 StringBuilder 对象的连续 append() 操作,即上面的代码可能会变成下面的样子: +String 是一个不可变的类,编译器会对 String 的拼接自动优化。在 JDK 1.5 之前,会转化为 StringBuffer 对象的连续 append() 操作: ```java public static String concatString(String s1, String s2, String s3) { @@ -1615,7 +1615,7 @@ public static String concatString(String s1, String s2, String s3) { } ``` -每个 StringBuffer.append() 方法中都有一个同步块,锁就是 sb 对象。虚拟机观察变量 sb,很快就会发现它的动态作用域被限制在 concatString() 方法内部。也就是说,sb 的所有引用永远不会“逃逸”到 concatString() 方法之外,其他线程无法访问到它。因此,虽然这里有锁,但是可以被安全地消除掉。 +每个 append() 方法中都有一个同步块。虚拟机观察变量 sb,很快就会发现它的动态作用域被限制在 concatString() 方法内部。也就是说,sb 的所有引用永远不会“逃逸”到 concatString() 方法之外,其他线程无法访问到它,因此可以进行消除。 ## 锁粗化 @@ -1647,8 +1647,6 @@ JDK 1.6 引入了偏向锁和轻量级锁,从而让锁拥有了四个状态: 偏向锁的思想是偏向于让第一个获取锁对象的线程,这个线程在之后获取该锁就不再需要进行同步操作,甚至连 CAS 操作也不再需要。 -可以使用 -XX:+UseBiasedLocking=true 开启偏向锁,不过在 JDK 1.6 中它是默认开启的。 - 当锁对象第一次被线程获得的时候,进入偏向状态,标记为 1 01。同时使用 CAS 操作将线程 ID 记录到 Mark Word 中,如果 CAS 操作成功,这个线程以后每次进入这个锁相关的同步块就不需要再进行任何同步操作。 当有另外一个线程去尝试获取这个锁对象时,偏向状态就宣告结束,此时撤销偏向(Revoke Bias)后恢复到未锁定状态或者轻量级锁状态。 diff --git a/notes/Leetcode 题解.md b/notes/Leetcode 题解.md index 8c1fd1f2..89940768 100644 --- a/notes/Leetcode 题解.md +++ b/notes/Leetcode 题解.md @@ -366,7 +366,7 @@ public int maxProfit(int[] prices) { 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。 -**有序数组的 Tow Sum** +**有序数组的 Two Sum** [Leetcode :167. Two Sum II - Input array is sorted (Easy)](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/description/) diff --git a/notes/Redis.md b/notes/Redis.md index 09246c53..2e10bb7a 100644 --- a/notes/Redis.md +++ b/notes/Redis.md @@ -6,7 +6,9 @@ * [SET](#set) * [HASH](#hash) * [ZSET](#zset) -* [三、字典](#三字典) +* [三、数据结构](#三数据结构) + * [字典](#字典) + * [跳跃表](#跳跃表) * [四、使用场景](#四使用场景) * [缓存](#缓存) * [计数器](#计数器) @@ -205,7 +207,9 @@ OK 2) "982" ``` -# 三、字典 +# 三、数据结构 + +## 字典 以下是 Redis 字典的主要数据结构,从上往下分析,一个 dict 有两个 dictht,一个 dictht 有一个 dictEntry 数组,每个 dictEntry 有 next 指针因此是一个链表结构。从上面的分析可以看出 Redis 的字典是一个基于拉链法解决冲突的哈希表结构。 @@ -309,6 +313,24 @@ int dictRehash(dict *d, int n) { } ``` +## 跳跃表 + +是有序集合的底层实现之一。 + +跳跃表是基于多指针有序链表实现的,可以看成多个有序链表。 + +

+ +在查找时,从上层指针开始查找,找到对应的区间之后再到下一层去查找。例如下图演示了查找 22 的过程。 + +

+ +与红黑树等平衡树相比,跳跃表具有以下优点: + +- 插入速度非常快速,因为不需要平衡树的旋转操作; +- 更容易实现; +- 支持无锁操作。 + # 四、使用场景 ## 缓存 @@ -562,13 +584,13 @@ Sentinel(哨兵)可以监听主服务器,并在主服务器进入下线状 - 可以发布文章; - 可以对文章进行点赞; -- 在首页可以按文章的发布时间或者文章的点赞数进行排序显示; +- 在首页可以按文章的发布时间或者文章的点赞数进行排序显示。 ## 文章信息 文章包括标题、作者、赞数等信息,在关系型数据库中很容易构建一张表来存储这些信息,在 Redis 中可以使用 HASH 来存储每种信息以及其对应的值的映射。 -Redis 没有关系型数据库中的表这一概念来将同类型的数据存放在一起,而是使用命名空间的方式来实现这一功能。键名的前面部分存储命名空间,后面部分的内容存储 ID,通常使用 : 来进行分隔。例如下面的 HASH 的键名为 article:92617,其中 article 为命名空间,ID 为 92617。 +Redis 没有关系型数据库中的表这一概念来将同种类型的数据存放在一起,而是使用命名空间的方式来实现这一功能。键名的前面部分存储命名空间,后面部分的内容存储 ID,通常使用 : 来进行分隔。例如下面的 HASH 的键名为 article:92617,其中 article 为命名空间,ID 为 92617。

@@ -591,6 +613,7 @@ Redis 没有关系型数据库中的表这一概念来将同类型的数据存 - Carlson J L. Redis in Action[J]. Media.johnwiley.com.au, 2013. - [黄健宏. Redis 设计与实现 [M]. 机械工业出版社, 2014.](http://redisbook.com/index.html) - [REDIS IN ACTION](https://redislabs.com/ebook/foreword/) +- [Skip Lists: Done Right](http://ticki.github.io/blog/skip-lists-done-right/) - [论述 Redis 和 Memcached 的差异](http://www.cnblogs.com/loveincode/p/7411911.html) - [Redis 3.0 中文版- 分片](http://wiki.jikexueyuan.com/project/redis-guide) - [Redis 应用场景](http://www.scienjus.com/redis-use-case/) diff --git a/pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png b/pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png new file mode 100644 index 0000000000000000000000000000000000000000..79ec18df91358576e3514f0541b6cd9b0fcfbc24 GIT binary patch literal 26624 zcmdqJbyQT}-!HB(!XO|H-6%*XARrPFLr5r+(%qqSH#l^ov?47f4N4E)Al==~3_Ucz z1Ad<8`+e^3S$Ez0&s}%jSqsi^IA`yD_Bs0PX+9o6mMie&1HX+7u_e{fiDMOzh?p zlg5r#U^oP}7|OzRJK8j^c&3t{Gb<gw&-_%*i*pkq``Zp#JTa`)tEghun(asAFO@-e$_;j6#RUk~U$-;V7Cp+u_VzmKW;?=4Bk@rRgE{T&X(m?=zniybZa<_xCS`XG(K zf4b-!_I*U)w`|7hE0WfS*sX9|z4b{8$# z9r4QJa6nQ@?ywOdc*0^-(Ip^JB?tFL-~ZvNkVK zXXFL_Rz|$(zH3U@-}y44S#DvU92HiV^u9V>+uQGETUwHXiUdBO+FLuWceG}-AcjG8 zZ0v1eq20nRnd3wKnj3_whdWF6k;?~(!H^Tu50a_d4>obF7naazXyhsn&HVW?_aB?W zy4Kf|?PeMOxx*8Y2WxDNts^oscF||4`{$^KWO&VKzQwe>(J_G04j8Q==wxNHyvx*~!-7B814}u1K z0UtU!OQax@`pbz?cE(Ba724h|8$F4{tY~xYNI|6njquy&cu;*Hy>)j~)0&>k zKbdFFgTVhji3EyTaBrxuK2_uQ=4M|(gz&=7-FTgy{z?sXLKPoQ??zFk_dof*Iqw9* zOspKF!h!jfptb3LMB`W?&nAagdA#8lcl0d7;k0^vc{76(x%A;bR+ikxpfS5M0?+2B z(%Z`l8CrRl2f||}QlCx!_&7s5f}3JB(^9^!(F`<$J#Y*mCp0NAcz=n4>vFdu<&pb0 z=Ky(Dw3T^9GJ)HPi>bq?c7LQ>=kZo1jnNq)us&8K6!%;cX4o#5W;Nrs*=Jcs-;e9b z$1M_WmnmPWGtb(cOgPUJU(_CgmcEHYb=-JF)))Zb}+YxQ& L<-dYLpg1cv^ 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 Uo)*ZM1pH_I{|7$&pU(gP0!V3d;Q#;t literal 0 HcmV?d00001 diff --git a/pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png b/pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png new file mode 100644 index 0000000000000000000000000000000000000000..b24241d106a0c150c6f3c5ca01d2644f5dbb15c0 GIT binary patch literal 25600 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 EJ8pF literal 0 HcmV?d00001