- 博客(9)
- 收藏
- 关注
原创 无锁多消费者缓存队列设计
一个生产者对应多个消费者,通常情况下是多个工作线程,来操作缓存队列,由于涉及到数据同步的问题,难免要用到线程锁机制,但是频繁的加锁解锁会有很大的性能开销,本文是设计针对多个工作线程,来同时创建相应的读写队列,使得线程间实现数据的隔离,对于缓存队列的操作,主要是m_rindex和m_windex索引位置的移动(环形队列)数据传输结构:struct Node_t //传输数据...
2018-08-17 17:13:32
596
转载 Nginx惊群现象的处理
转载地址:http://blog.csdn.net/dasgk/article/details/41542589nginx中使用的锁是自己来实现的,这里锁的实现分为两种情况,一种是支持原子操作的情况,也就是由NGX_HAVE_ATOMIC_OPS这个宏来进行控制的,一种是不支持原子操作,这是是使用文件锁来实现。首先我们要知道在用户空间进程间锁实现的原理,起始原理很简
2018-01-30 11:44:27
696
转载 Redis内部数据结构详解(7)——intset
本文是《Redis内部数据结构详解》系列的第七篇。在本文中,我们围绕一个Redis的内部数据结构——intset展开讨论。Redis里面使用intset是为了实现集合(set)这种对外的数据结构。set结构类似于数学上的集合的概念,它包含的元素无序,且不能重复。Redis里的set结构还实现了基础的集合并、交、差的操作。与Redis对外暴露的其它数据结构类似,set的底层实现,随着元素类型
2018-01-10 10:52:02
1283
转载 Redis内部数据结构详解(6)——skiplist
本文是《Redis内部数据结构详解》系列的第六篇。在本文中,我们围绕一个Redis的内部数据结构——skiplist展开讨论。Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorted set相对来说实现比较复杂。同时,skiplist这种数据结构对于很多人来说都比较陌生,因
2018-01-10 10:50:48
7358
5
转载 Redis内部数据结构详解(5)——quicklist
本文是《Redis内部数据结构详解》系列的第五篇。在本文中,我们介绍一个Redis内部数据结构——quicklist。Redis对外暴露的list数据类型,它底层实现所依赖的内部数据结构就是quicklist。我们在讨论中还会涉及到两个Redis配置(在redis.conf中的ADVANCED CONFIG部分):list-max-ziplist-size -2list-co
2018-01-10 10:49:52
792
转载 Redis内部数据结构详解(4)——ziplist
本文是《Redis内部数据结构详解》系列的第四篇。在本文中,我们首先介绍一个新的Redis内部数据结构——ziplist,然后在文章后半部分我们会讨论一下在robj, dict和ziplist的基础上,Redis对外暴露的hash结构是怎样构建起来的。我们在讨论中还会涉及到两个Redis配置(在redis.conf中的ADVANCED CONFIG部分):hash-max-zi
2018-01-10 10:49:04
15415
4
转载 Redis内部数据结构详解(3)——robj
本文是《Redis内部数据结构详解》系列的第三篇,讲述在Redis实现中的一个基础数据结构:robj。那到底什么是robj呢?它有什么用呢?从Redis的使用者的角度来看,一个Redis节点包含多个database(非cluster模式下默认是16个,cluster模式下只能是1个),而一个database维护了从key space到object space的映射关系。这个映射关系
2018-01-10 10:47:22
1223
转载 Redis内部数据结构详解(2)——sds
本文是《Redis内部数据结构详解》系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds。不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构。sds正是在Redis中被广泛使用的字符串结构,它的全称是Simple Dynamic String。与其它语言环境中出现的字符串相比,它具有如下显著的特点:可动态扩展内存。sds表示的字符串其内容可以修改,也可以追加。在很
2018-01-10 10:45:14
1370
转载 Redis内部数据结构详解(1)
Redis内部数据结构详解(1)——dict如果你使用过Redis,一定会像我一样对它的内部实现产生兴趣。《Redis内部数据结构详解》是我准备写的一个系列,也是我个人对于之前研究Redis的一个阶段性总结,着重讲解Redis在内存中的数据结构实现(暂不涉及持久化的话题)。Redis本质上是一个数据结构服务器(data structures server),以高效的方式实现了多种现
2018-01-10 10:36:37
2940
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人