【Redis5源码学习】浅析redis命令执行的生命周期

2019-09-15
阅读 13 分钟
2.4k
首先看一张我们非常熟悉的redis命令执行图:那么思考这样一个问题,当我们连接了redis服务端之后,然后输入并执行某条redis命令:如set key1 value1。这条命令究竟是如何被发送到redis服务端的,redis服务端又是如何解析,并作出相应处理,并返回执行成功的呢?

【Redis5源码学习】浅析redis中的IO多路复用与事件机制

2019-09-01
阅读 14 分钟
7.3k
读这篇文章之前请先阅读:浅析服务器并发IO性能提升之路—从网络编程基础到epoll,以更好的理解本文的内容,谢谢。我们知道,我们在使用redis的时候,通过客户端发送一个get命令,就能够得到redis服务端返回的数据。redis是基于传统的C/S架构实现的。它通过监听一个TCP端口(6379)的方式来接收来自客户端的连接,从而进...

【Redis5源码学习】2019-04-19 字典dict

2019-08-04
阅读 9 分钟
2.1k
hash:数据量小的时候使用ziplist,量大时使用dict zset:数据量小的时候使用ziplist,数据量大的时候使用skiplist + dict

【Redis5源码学习】2019-04-17 压缩列表ziplist

2019-07-29
阅读 4 分钟
4k
乍一看标题,我们可能还不知道ziplist是何许人也。但是如果我说list、hash、zset这几种数据结构,大家就很熟悉了。而ziplist就是这几种数据结构的底层实现之一:

【Redis5源码学习】2019-04-16 跳跃表skiplist

2019-07-29
阅读 4 分钟
2.4k
想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。

【Redis5源码学习】2019-04-15 简单动态字符串SDS

2019-07-25
阅读 8 分钟
3.3k
今天我们正式进入redis5源码的学习。redis是一个由C语言编写、基于内存、单进程、可持久化的Key-Value型数据库,解决了磁盘存取速度慢的问题,大幅提升了数据访问速度,所以它常常被用作缓存。