![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
iteye_17648
这个作者很懒,什么都没留下…
展开
-
redis 多线程与阉割版
终于折腾出redis的多线程版,大概实现: 1.每个db一个读写锁,dirty操作写锁,否则读锁。 2.一个boss线程,n个worker线程,boss线程负责accept连接,rehash,expire。wokrer负责处理客户端请求。client平均分配到各个worker上。一般的client请求都不会与其他client打交道,除了push遇到bpop,pubsub这...2011-12-15 22:51:40 · 133 阅读 · 0 评论 -
redis的几项修改
最近的空闲时间都在抠redis的源码,强大并最大限度节约内存的数据类型是里面的亮点。 看完后有点想法,在上面做点个人感觉能起正向作用的修改。 基于redis的原生事件框架支持多线程处理访问,类似于memcached的处理手法。在多核处理器上能有多大的性能提升还要看测试结果。虽然说多线程访问引入锁和增加系统复杂度,但对于性能的提升还是抱乐观态度的。 额外提供2个数据类型,一个...2011-11-22 23:25:59 · 116 阅读 · 0 评论 -
redis数据类型改进和补充:zip2list和uintset
ziplist和intset是redis的两种value格式。顾名思义,ziplist是压缩的list,intset是存放int的set。元素在里面都是被编成bytes。 ziplist的大概思路是如果存放的字符串可以被解析成int,则以int的编码保存,节省内存。编码成int时,head包含一个字节encoding,代表int的长度,分别是2bytes,4bytes,8byte...2011-11-24 09:40:33 · 92 阅读 · 0 评论 -
redis的vm 设想
在抠redis时,对于vm的设计有一个初步的想法,把冷数据重新malloc到一系列的内存块中,系统swap的交换以4k为单位,在redis里,一般4k能容纳多个key或value,如果冷热数据在同一4k的块里,阻碍冷数据swap out.redis期望通过一种vm的机制,把冷数据swap out到文件里,需要时再从文件swap in。但是该机制的效果不理想,带来复杂度的同时也使系统运行不稳定。该...2011-11-29 22:42:14 · 90 阅读 · 0 评论