E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
redis源码
Redis源码
解析05: 压缩列表
压缩列表(ziplist)是列表键和哈希键的底层实现之一。当列表键只包含少量列表项,并且每个列表项要么是小整数值,要么是长度较短的字符串时;或者当哈希键只包含少量键值对,并且每个键值对的键和值要么是小整数值,要么是长度较短的字符串时,那么Redis就会使用压缩列表来做为列表键或哈希键的底层实现。压缩列表是Redis为了节约内存而开发的,可用于存储字符串和整数值。它是一个顺序型数据结构,由一系列特殊
weixin_30405421
·
2020-09-11 04:12
Redis源码
剖析和注释(六)--- 压缩列表(ziplist)
Redis压缩列表(ziplist)1.介绍压缩列表(ziplist)是哈希键的底层实现之一。它是经过特殊编码的双向链表,和整数集合(intset)一样,是为了提高内存的存储效率而设计的。当保存的对象是小整数值,或者是长度较短的字符串,那么redis就会使用压缩列表来作为哈希键的实现。127.0.0.1:6379>HMSEThashnamemikeage28sexmaleOK127.0.0.1:6
men_wen
·
2020-09-11 02:36
Redis
数据结构与算法
Redis
3.2.8
源码剖析注释
Redis源码
(六)——压缩列表
一、压缩列表(ziplist)的定义与实现压缩列表是一种为了节约内存而开发的顺序数据结构,是列表及哈希对象的底层实现之一。当列表中只有少量的列表元素,且列表元素是小整数值或者较短的字符串,Redis就会用压缩列表作为列表对象的底层实现;当哈希对象中只包含少量键值对,而且键值都是小整数或者长度较短的字符串,Redis就用压缩列表作为哈希的实现。src中的ziplist.c和ziplist.h包含了压
奥利弗的巨大泰迪
·
2020-09-11 00:25
Redis
Spring Data
Redis源码
解析
SpringDataRedisSpringDataRedis是较大的SpringData系列的一部分,可轻松配置并从Spring应用程序访问Redis。它提供了与商店交互的低层和高层抽象,使用户摆脱了基础设施的困扰。.为什么使用SpringDataRedis?Spring框架是领先的全栈Java/JEE应用程序框架。它提供了一个轻量级的容器和一个非侵入性编程模型,该模型通过使用依赖项注入,AOP和
146789
·
2020-09-10 20:14
Redis3.2.11安装
1.下载redis3的稳定版本:下载地址:http://download.redis.io/releases/2.上传redis-3.2.11.tar.gz到虚拟机3.解压
redis源码
包:tar-zxvfredis
weixin_43866709
·
2020-09-10 20:09
Redis
spring-data-
redis源码
分析备忘
在DefaultRedisCacheWriter中的读取过程中privateTexecute(Stringname,Functioncallback){RedisConnectionconnection=connectionFactory.getConnection();try{checkAndPotentiallyWaitUntilUnlocked(name,connection);//实现re
CyCodeMark
·
2020-09-10 20:23
Redis源码
解析:zmalloc--内存操作的小小封装
2019独角兽企业重金招聘Python工程师标准>>>临时插入这一块内容,是关于内存分配释放函数的,也就是malloc/calloc/realloc/free这四个,毕竟在很多代码中都有用到。在redis3.2.6中,对内存分配函数进行了封装,代码主要在zmalloc.h/.c文件里面,有以下几个特性:1.支持多种内存处理函数2.支持自定义错误处理函数3.可获取已分配内存总量首先说说支持多种内存处
weixin_34411563
·
2020-09-10 20:54
【redis6.0.6】
redis源码
慢慢学,慢慢看 -- 第四天:提纲掣领main函数(server)
文章目录前言:RedisMakefileCopyright(C)2009SalvatoreSanfilippoThisfileisreleasedundertheBSDlicense,seetheCOPYINGfile探索main函数第一块第二块第三块第四块第五块第六块第七块前言:先附上人家的版权:RedisMakefileCopyright©2009SalvatoreSanfilippoThis
看,未来
·
2020-09-10 17:42
#
redis源码学习
【redis6.0.6】
redis源码
慢慢学,慢慢看 -- 第三天:MakeFile
文章目录前言:RedisMakefileCopyright(C)2009SalvatoreSanfilippoThisfileisreleasedundertheBSDlicense,seetheCOPYINGfilemakefile回来继续最后再总结一下前言:先附上人家的版权:RedisMakefileCopyright©2009SalvatoreSanfilippoThisfileisrele
看,未来
·
2020-09-10 17:42
#
redis源码学习
Redis源码
编译安装
Redis安装包(下载链接从Redis官网获取,直接搜索redis进入官网)[
[email protected]
]$cd~[xiaokang@localhost~]$cd/tmp#下载
redis
AllardZhao
·
2020-09-10 16:14
Linux系统
spring data
redis源码
框架分析
redis是由SalvatoreSanfilippo用C语言编写的一个缓存系统,与memcached相比,提供了更多的处理复杂数据结构的方法;性能也非常的突出。由于项目需要,自己简单地看了下spring新加入的模块springdataredis,springdataredis对jedis,jredis,rjc等redis的java客户端接口进行了进一部的抽象,类似于jdbcTemplate的实现。
leonmau
·
2020-09-10 14:05
Database
Spring
Java
redis
【redis6.0.6】
redis源码
慢慢学,慢慢看 -- 第二天:空间配置(zmalloc)
文章目录前言:allocatorzmalloc.h中的函数声明alloczmalloc注1:PREFIX_SIZE注2:oom处理方法注3:update_zmalloc_stat_alloc方法注4:atomicIncr方法zcalloczrealloc注5:zfree方法注6:zmalloc_size方法注7:update_zmalloc_stat_free方法注8:update_zmalloc
看,未来
·
2020-09-10 10:31
#
redis源码学习
spring-data-
redis源码
分析
spring
redis源码
设计逻辑可以分为以下几个方面:Redis连接管理:封装了Jedis,Jredis,Rjc等不同redis客户端连接Redis
IT_liangchaowei
·
2020-09-10 09:47
java
【redis6.0.6】
redis源码
慢慢学,慢慢看 -- 第五天:adlist
文章目录前言:头文件源文件list*listCreate(void);voidlistEmpty(list*list);voidlistRelease(list*list);list*listAddNodeHead(list*list,void*value);list*listAddNodeTail(list*list,void*value);list*listInsertNode(list*li
看,未来
·
2020-09-10 09:39
#
redis源码学习
人生,有时候需要一些摸鱼的快乐时光
一科复一科,考试何其多,这十天半个月怕是更不了“
redis源码
学习”系列文了,摸摸鱼。从一月份回家,到九月份回学校,和同学们闲聊,大家都说:感觉好像昨天就在学校一样,这八个月也没什么感觉,就过去了。
看,未来
·
2020-09-10 09:38
问道
程序人生
【
Redis源码
】集群之哨兵sentinel初识(十一)
前言:说到哨兵之前,可以思考一个问题。为什么有哨兵机制?这一点其实可以从主从复制的优缺点作为考虑。主从复制其实有一个致命的弱点就是它是非高可用的,比如说当主节点出现故障时,那么此时我的写入就会出现问题,切换需要重新配,就无法做到高可用。此时其实就可以用到哨兵进制,哨兵自动发现故障,并通过选举算法重新选举新主完成转移和通知实现高可用。参考资料:https://redis.io/topics/sent
c-rain
·
2020-08-25 16:56
C++
Redis
redis源码
之sentinel高可用架构分析-分布式一致性Raft算法
=====================================================
redis源码
学习系列文章:
redis源码
分析之sha1算法分析
redis源码
分析之字典源码分析
chen_song_
·
2020-08-25 16:27
Redis源码探秘
Redis源码
剖析和注释(二十一)--- 单机服务器实现
Redis单机服务器实现1.Redis服务器Redis服务器负责与客户端建立网络连接,处理发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并且通过一系列资源管理措施来维持服务器自身的正常运转。本次主要剖析server.c文件,本文主要介绍Redis服务器的一下几个实现:命令的执行过程Redis服务器的周期性任务maxmemory的策略Redis服务器的main函数其他的注释请上githu
men_wen
·
2020-08-25 14:16
Redis
Redis
3.2.8
源码剖析注释
Redis源码
剖析和注释
Redis3.2.8源码剖析和注释系列文章地址归总Redis3.2.8源码剖析和注释redis3.2.8源码详细注释地址文章地址文件名称
Redis源码
剖析和注释(一)—链表结构adlist.c和adlist.h
Redis
bujidexinq
·
2020-08-25 14:18
Redis源码
剖析和注释(二十四)--- Redis Sentinel实现(哨兵操作的深入剖析)
RedisSentinel实现(下)本文是RedisSentinel实现(上)篇文章的下半部分剖析。主要剖析以下内容:哨兵的使命RedisSentinel实现下哨兵的使命1周期性的操作11建立连接12发送监控命令13判断节点的主观下线状态14判断主节点的客观下线状态15对主节点执行故障转移151故障转移开始152选择一个要晋升的从节点153使从节点变为主节点154等待从节点晋升为主节点155从节点
qq_26249609
·
2020-08-25 12:18
REDIS
Redis源码
剖析和注释(二十三)--- Redis Sentinel实现(哨兵的执行过程和执行的内容)
RedisSentinel实现(上)RedisSentinel介绍和部署请参考RedisSentinel介绍与部署sentinel.c文件详细注释:RedisSentinel详细注释本文会分为两篇分别接受RedisSentinel的实现,本篇主要将Redis哨兵的执行过程和执行的内容。RedisSentinel实现上RedisSentinel介绍和部署RedisSentinel的执行过程和初始化1
qq_26249609
·
2020-08-25 12:48
REDIS
redis自动切换
配置Sentinel
Redis源码
中包含了一个名为sentinel.conf的文件,这个文件是一个带有详细注释的Sentinel配置文件示例。
weixin_34309435
·
2020-08-25 08:49
Redis 源码研究之dict
本文主要记录在阅读
Redis源码
中dict部分的一些函数和实现的巧妙之处。
wenmingxing
·
2020-08-25 02:32
Redis源码
研究之底层数据结构
本文主要介绍Redis的几种底层数据结构的数据结构部分,其接口部分以后会分别说明。建议阅读:1、Redis的几种数据结构的理论说明见:Redis中的对象底层实现。I、dict字典是数据库最基本的数据类型,因为数据库几乎都是以key-value形式存储的。//字典数据结构,Redis的所有键值对都会存储在这里。其中包含两个哈希表,为了应对rehash。/*src/dict.h/dict*/typed
wenmingxing
·
2020-08-24 19:53
redis源码
学习之链表
链表是经典的数据结构,redis的实现也很经典。双向链表redis的链表是双向链表,也就是说,每个链表节点有一个指向前一个节点的指针和指向后一个节点的指针。另外,节点的数据域也用指针表示,这样就可以表示各种类型的数据。typedefstructlistNode{//前置节点structlistNode*prev;//后置节点structlistNode*next;//节点的值void*value;
NearXDU
·
2020-08-24 18:08
redis
Redis源码
分析(十五)——持久化AOF
Redis提供的第二种持久化机制AOF(Append-OnlyFile),正如其名字,是以协议文本的方式将所有对数据库进行写的命令(及其参数)记录到追加到AOF文件,以此达到记录数据库状态的目的。基本过程为:客户端通过网络协议向服务器发起命令请求——>服务器选择命令函数并创建命令参数对象——>数数据库执行命令操作。/同时服务器将命令操作广播到AOF程序——>AOF程序将命令及参数对象、数据库ID等
独孤_子喻
·
2020-08-24 18:13
Redis源码分析
Redis源码
解析:28集群(四)手动故障转移、从节点迁移
一:手动故障转移Redis集群支持手动故障转移。也就是向从节点发送”CLUSTERFAILOVER”命令,使其在主节点未下线的情况下,发起故障转移流程,升级为新的主节点,而原来的主节点降级为从节点。为了不丢失数据,向从节点发送”CLUSTERFAILOVER”命令后,流程如下:a:从节点收到命令后,向主节点发送CLUSTERMSG_TYPE_MFSTART包;b:主节点收到该包后,会将其所有客户端
weixin_30439031
·
2020-08-24 16:21
epoll源码分析以及在Redis中的实现
文末会从
redis源码
简单看看如何使用epoll做IO多路复用实现高并发。2.具体实现参考官方文档描述:Thecentralcon
gosh
·
2020-08-24 16:12
epoll
Redis源码
剖析(八)链表
在之前对Redis的介绍中,可以看到链表的使用频率非常高。链表可以作为单独的存储结构,比如客户端的监视链表记录该客户端监视的所有键,服务器的模式订阅链表记录所有客户端和它的模式订阅。链表也可以内嵌到字典中作为字典的值类型,比如数据库的监视字典使用链表存储监视某个键的所有客户端,服务器的订阅字典使用链表存储订阅某个频道的所有客户端。链表结构节点Redis中的链表是双向链表,即每一个节点都保存了它的前
一个程序渣渣的小后院
·
2020-08-24 16:12
Redis
Redis源码剖析
Redis源码
剖析--压缩列表
压缩列表(ziplist)是列表键和哈希键的底层实现之一。Redis的列表键,哈希键,有序集合的底层实现都用到了ziplist。当列表键中包含比较少的元素,并且元素都是数字或者比较小的字符串的时候,redis会用压缩列表来作为列表键的底层实现。当哈希键的键和值都是比较小的整数或者较短的字符的时候,也是用压缩列表来作为底层实现。因为压缩列表也能够节省内存。压缩列表结构压缩列表的结构如下:列表头包括三
harleyliu
·
2020-08-24 15:54
redis
源码
redis
源码
Redis源码
剖析-链表list
Redis另一个基础的数据结构是链表,C并没有内置的链表结构,因此Redis自己实现了一个列表。除了链表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区。List结构双端链表结点定义如下:typedefstructlistNode{structlistNode*prev;//指向前一个结点struct
harleyliu
·
2020-08-24 15:22
redis
源码
Redis源码
剖析之服务器
以下涉及到的源码均为redis5.0-rc3版本的代码【点击查看官方源码】文章目录服务器结构服务器初始化serverCron函数databasesCronredisServer/initServerConfig/initServer源码redisServerinitServerConfiginitServer服务器结构在redis的头文件server.h中定义了服务器的数据结构,略见如下:(详细的
lazycece
·
2020-08-24 15:56
Redis技术探秘
centos 7 make install redis
Redis源码
获取1.通过redis官方网站获取源码https://redis.io/download2.通过wget命令下载Redis源代码$wegethttp://download.redis.io
limk_Mr
·
2020-08-24 15:34
redis源码
浅析--七-redisObject对象(上)(对象的类型与编码)
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》redis
wangxiaoangg
·
2020-08-24 15:18
redis
redis源码
阅读--三-redis散列表的实现
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》redisdict
wangxiaoangg
·
2020-08-24 15:48
redis
redis源码
redis源码
浅析--五-整数集合的实现
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》相关推荐
wangxiaoangg
·
2020-08-24 15:48
redis
redis源码
浅析--六-压缩列表
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》一
wangxiaoangg
·
2020-08-24 15:48
redis
redis源码
之链表list
未完待续…链表list1.简介:离散,无序的数据结构。链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。链表被广泛用于实现Redis的各种功能,比如列表键,发布与订阅,慢查询,监视器,等等。2.定义/**链表节点*/typedefstructlistNode{structlistNode*prev;//前置节点structlistNode*next
幻世111
·
2020-08-24 15:32
redis
Redis源码
学习-AOF
前言网络上也有许多介绍redis的AOF机制的文章,但是从宏观上介绍aof的流程,没有具体分析在AOF过程中涉及到的数据结构和控制机制。昨晚特别看了2.8源码,感觉源码中的许多细节是值得细细深究的。特别是list*aof_rewrite_buf_blocks结构。仔细看源码,会发现原来看网络文章多的到的领会是片面的,最好的学习还是得自己动手...原文链接:http://blog.csdn.net/
ordeder
·
2020-08-24 15:10
Redis
redis源码
分析(五):数据持久化
redis是基于内存读写的数据库,所有数据都存储在内存中,所以存储的数据大小受到了限制。但redis依然提供了固化功能,与mysql,leveldb等数据库不同的是,redis的存储功能只是用做备份,恢复的功能,全量数据还是存储在内存中。redis内部提供了两种固化数据的方式,aof和rdb。1.aof数据写入aof全称appendOnlyFile,要让redis支持aof方式,需要将配置文件的a
newbei5862
·
2020-08-24 15:57
redis
Redis源码
剖析和注释(八)--- 对象系统(redisObject)
Redis对象系统1.介绍redis中基于双端链表、简单动态字符串(sds)、字典、跳跃表、整数集合、压缩列表、快速列表等等数据结构实现了一个对象系统,并且实现了5种不同的对象,每种对象都使用了至少一种前面的数据结构,优化对象在不同场合下的使用效率。双端链表源码剖析和注释简单动态字符串(SDS)源码剖析和注释字典结构源码剖析和注释跳跃表源码剖析和注释整数集合源码剖析和注释压缩列表源码剖析和注释快速
men_wen
·
2020-08-24 15:31
Redis
Redis
3.2.8
源码剖析注释
DEBUG——redhat下安装eclipse&debug
redis源码
背景今天心血来潮,想看看redis的源码,尝试debug一下,找了半天之前的虚拟机,上面却没有预先安装eclispe,对于GCC的调试又不会,思索之下,还是装个eclipse,虽然本人的JAVA很烂,但调试个C代码还是有信心的。物件因这次是调试C代码的,所以在下载eclipse的时候,选取了跟C相关的版本:eclipse-cpp-luna-SR1a-linux-gtk-x86_64.tar.gz安
磨刀人
·
2020-08-24 14:27
NoSQL
Redis
redis源码
分析与思考(十一)——文件事件机制(服务端与客户端的通信机制)
redis服务器是一个典型的事件驱动程序,客户端产生命令通过套接字来与服务端进行通信,而服务端通过套接字来返回对应的响应来给客户端。服务端主要处理两大类事件:文件事件:文件事件是服务端对套接字通信的抽象,表示着服务端与客户端通信产生一系列的操作。时间事件:服务端需要定时的检查自身的状态,以及一些函数需要定时的运行,由这些产生的操作的抽象即为时间事件。下面列出事件的几种状态:/**文件事件状态*//
suye233
·
2020-08-24 14:16
Redis
Redis源码分析与思考
redis
nosql
源码分析
Redis源码
解析:22sentinel(三)客观下线以及故障转移之选举领导节点
八:判断实例是否客观下线当前哨兵一旦监测到某个主节点实例主观下线之后,就会向其他哨兵发送”is-master-down-by-addr”命令,询问其他哨兵是否也认为该主节点主观下线了。如果有超过quorum个哨兵(包括当前哨兵)反馈,都认为该主节点主观下线了,则当前哨兵就将该主节点实例标记为客观下线。注意,客观下线的概念只针对主节点实例,而与从节点和哨兵实例无关。1:发送”is-master-do
gqtcgq
·
2020-08-24 14:36
redis
Redis源码
阅读【8-命令处理生命周期-1】
Redis源码
阅读【1-简单动态字符串】
Redis源码
阅读【2-跳跃表】
Redis源码
阅读【3-Redis编译与GDB调试】
Redis源码
阅读【4-压缩列表】
Redis源码
阅读【5-字典】
Redis源码
阅读
南蛮麟爷
·
2020-08-24 13:24
redis
源码阅读
Redis源码
分析(十八)--- db.c内存数据库操作
我们知道Redis数据库作为一个内存数据库,与memcached比较类似,基本的操作都是存储在内存缓冲区中,等到缓冲区中数据满后,在持久化到磁盘中。今天,我主要研究了对于redis中对于内存数据库的操作。与普通的数据操作比较,并没有什么特别多的其他的一些操作。下面是我分类出的一些API:/*------------------------------------------------------
Android路上的人
·
2020-08-24 12:38
Redis源码
Redis源码分析
Redis源码
剖析--跳跃表
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(\logN)最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代替平衡树。Redis使用跳跃表作为有序集合键的底层实现之一:如
harleyliu
·
2020-08-24 12:39
redis
源码
redis源码
浅析--十一.事件(下)时间事件
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》目录事件
wangxiaoangg
·
2020-08-24 12:55
redis
redis源码
浅析--十一.事件(上)文件事件
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》redis
wangxiaoangg
·
2020-08-24 12:55
redis
redis源码
浅析--九-RDB持久化
环境说明:
redis源码
版本5.0.3;我在阅读源码过程做了注释,git地址:https://gitee.com/xiaoangg/redis_annotation参考书籍:《redis的设计与实现》目录一
wangxiaoangg
·
2020-08-24 12:55
redis
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他