虽然已经临近年末,但是还是萌生要看新机会的想法,主要的原因是觉得在目前的岗位上技术增长遇到的瓶颈,因此想去做一些更有挑战的工作。因为仍然准备继续在深圳工作,因此选定了三家公司,腾讯、字节跳动和 shopee,考虑的岗位方向仍然是后台开发(其他岗位也面不上呀,伤心)。虽然年底跳拿不到年终奖了,但是我觉 ...
分类:
其他好文 时间:
2019-11-11 12:37:20
阅读次数:
94
本文从网络模型、数据结构和内存管理、持久化和多机协作四个角度对redis的设计思路进行分析。一.网络模型Redis是典型的基于Reactor的事件驱动模型,单进程单线程,高效的框架总是类似的。网络模型与spp的异步模型几乎一致。Redis流程上整体分为接受请求处理器、响应处理器和应答处理器三个同步模块,每一个请求都是要经历这三个部分。Redis集成了libevent/epoll/kqueue/se
分类:
其他好文 时间:
2019-10-29 17:02:05
阅读次数:
93
Redis的跳跃表由如下:两个结构定义,其中 zskiplistNode结构用于表示跳跃表节点,而 zskiplist结构则用于保存跳跃表节点的相关信息,比如节点的数量,以及指向表头节点和表尾节点的指针等等 ...
分类:
其他好文 时间:
2019-10-08 18:49:45
阅读次数:
75
什么是跳跃表? SkipList在leveldb、redis以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表? “ Skip lists are data structures that use ...
分类:
其他好文 时间:
2019-09-01 16:40:54
阅读次数:
122
跳表的原理 跳表也叫跳跃表,是一种动态的数据结构。如果我们需要在有序链表中进行查找某个值,需要遍历整个链表,二分查找对链表不支持,二分查找的底层要求为数组,遍历整个链表的时间复杂度为O(n)。我们可以把链表改造成B树、红黑树、AVL树等数据结构来提升查询效率,但是B树、红黑树、AVL树这些数据结构实 ...
分类:
其他好文 时间:
2019-08-22 23:40:47
阅读次数:
117
前记 最近在看Redis,之间就尝试用sortedSet用在实现排行榜的项目,那么sortedSet底层是什么结构呢? "Redis sorted set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的 ...
分类:
编程语言 时间:
2019-04-30 23:47:31
阅读次数:
309
Redis的魅力 缓存大致可以分为两类,一种是应用内缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库),另一种就是缓存组件,比如Memached,Redis;Redis(remote dictionary server)是一个基于KEY-VALUE的高性能的存储系统,通过提 ...
分类:
其他好文 时间:
2019-04-30 01:24:18
阅读次数:
159
跃进表是一个有序数据结构,它通过在每个节点上维护多个指向其他节点的指针,从而达到快速访问节点的目的; 跃进表支持平均O(logN)、最坏O(N)复杂度的节点查询,还可以通过顺序性来批量处理节点; 大多数情况下,跳跃表与平衡树效率差不多,并且因为跳跃表的实现比平衡树要来的更简单,所以可以使用跳跃表来替 ...
分类:
其他好文 时间:
2019-04-10 00:41:14
阅读次数:
200
最近在阅读redis设计与实现,关于redis数据结构zset的一种底层实现跳跃表一直没有太理解,所以在搜了一下资料,终于搞懂了它的设计思路,记录一下。 参考链接:https://mp.weixin.qq.com/s?src=11×tamp=1553915878&ver=1515&sign ...
分类:
其他好文 时间:
2019-03-30 13:32:39
阅读次数:
159
#include #include #include #include #define MAX_LEVEL 10 #define MAX_Key 20 #define MAX_Value 40 #define inf 0x3f3f3f3f using namespace std; struct No... ...
分类:
编程语言 时间:
2019-01-04 20:21:06
阅读次数:
133