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源码
阿里内部445页爆款
Redis源码
分析宝典终开源!
前言在开源界,高性能服务的典型代表就是Nginx和Redis。纵观这两个软件的源码,都是非常简洁高效的,也都是基于异步网络I/O机制的,所以对于要学习高性能服务的程序员或者爱好者来说,研究这两个网络服务的源码是非常有必要的。Nginx目前市面上的书籍很多,但是Redis确实寥寥无几。这几年Redis版本发展非常快,从稳定的2.x版本,发展到增加了很多优秀特性的5.0版本,这些特性目前尚无资料进行系
java架构师小芷
·
2020-10-08 13:10
算法
数据结构
编程语言
算法
数据结构
编程语言
python
redis
Linux安装redis
下边是配置步骤我选择使用Xshell的Xftp工具image.png1.先新建一个文件夹,目录是/usr/local/javamkdir/usr/local/java也可以在Xftp中新建文件夹2.把下载的
redis
奋斗_de_小青年
·
2020-09-29 22:58
redis源码
阅读之数据结构(浅易说明)
好一段时间只在有道笔记上上写笔记而写博客了,最近忽然发现,只写笔记的话容易造成信息丢失,所以想把笔记的内容整理成博客留存下来。redis是一个内存型nosql数据库,之前阅读其源码,就感觉到作者的牛逼之处,源码中的数据结构透露出对内存的极高的利用率(ps:我看的是redis5.05版本的源码)。从redis给出的用法知道,redis顶级的对象是db,然后下面存储了string、hash、list、
Gavin_new
·
2020-09-17 06:22
后端
redis
数据结构
Redis源码
详解 - Replication(主备)流程
HA(高可用性)是数据库的最基本需求,而主备冗余则是HA最基础的解决方案。Redis里面,主备通常使用Master-Replica来表述。通用主备方案的实现,涉及到以下几个关键问题:主备感知:主备之间要建立某种关联(主备信令通道),并且要明确判断主备角色(主备裁决)。数据同步:首先要明确一点,主备之间的数据同步不是必须的,这取决于系统的HA的要求有多高。这又可以分为:热备(hot-standby)
Tiger-1985
·
2020-09-17 04:40
Redis源码
redis源码
命令分析--关键字keys命令
DELkey[key...]删除一个key命令:delkey1key2key3redis协议:*$4\r\n$3\r\ndel\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n$4\r\nkey3\r\n命令主要执行主要函数:delCommand------------dbDelete------------dictDelete1)尝试删除redisServer->db[index]
陈鸿儒
·
2020-09-16 22:02
redis
redis源码
学习--数据结构:ziplist实现
本文接上篇"
redis源码
学习–数据结构:ziplist设计"https://blog.csdn.net/dmgy614262711/article/details/105879969一下是entry定义的数据结构
Carson_zhong
·
2020-09-16 09:43
数据结构(C语言):链表
c语言
Redis源码
剖析——ziplist的实现
有序集合对象ziplist为Redis中的压缩列表,是列表键和哈希键的底层实现之一,用于存储长度短的字符串和小整数。ziplist采用一段连续的内存来存储节点ziplist的表示因为ziplist的数据结构的长度是变化的所有没有特定的结构体,ziplist在内存中的布局如下entry也是不定长的,没有特定的结构体,entry在内存中的布局如下previous_entry_length的长度可以为1
Coding_Reading
·
2020-09-16 09:56
Redis源码剖析
Redis源码
阅读笔记--六大数据结构和五大对象
数据结构与对象一、简单动态字符串redis的字符串不是用‘\0’空字符串结尾的字符数组,而是sds动态字符串。每个sdshdr结构表示一个sds值,里面有buf字节数组,不是字符数组,有表示buf数组已使用字节数量的len和buf未使用字节数量的free属性。1sds可以常数复杂度获取字符串长度,因为有len属性。2可以减少修改字符串时带来的内存重分配次数。如拼接字符串不一定要再分配内存,截取字符
K_天道酬勤
·
2020-09-15 17:07
redis源码阅读笔记
redis源码
分析之事务Transaction(上)
这周学习了一下redis事务功能的实现原理,本来是想用一篇文章进行总结的,写完以后发现这块内容比较多,而且多个命令之间又互相依赖,放在一篇文章里一方面篇幅会比较大,另一方面文章组织结构会比较乱,不容易阅读。因此把事务这个模块整理成上下两篇文章进行总结。原文地址:http://www.jianshu.com/p/acb9...这篇文章我们重点分析一下redis事务命令中的两个辅助命令:watch跟u
weixin_34278190
·
2020-09-15 09:45
Centos7安装Redis单机版和集群
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、单机版搭建1.安装gcc编译环境,使用命令yuminstallgcc-c++2.将
redis源码
上传到
环游记
·
2020-09-15 03:34
❀数据库与缓存
------【Redis】
Redis源码
整体运行流程详解
Redis源码
整体运行流程的相关文件是:redis.h,redis.c,networking.c,ae.h,ae.c。
xkey
·
2020-09-14 18:57
Redis
redis
TCP
socket
整体运行框架
Win10下Redis集群配置
1、准备相关的安装包gems是基于Ruby的一些开发工具包官方
redis源码
redis安装程序redis的ruby环境2、安装redis2、安装ruby环境没什么好说的记住utf-8编码选上安装成功3、
zr420678364
·
2020-09-14 17:03
Redis
centos7安装单机版redis
download.redis.io/releases/redis-5.0.4.tar.gz3.解压tar-zxvfredis-5.0.4.tar.gz#查看ls4.安装C语言环境yuminstallgcc-c++5.编辑
redis
direct_copy
·
2020-09-14 13:59
centos
linux
redis
docker
走进Redis:Redis的安装、使用以及集群的搭建
进入
redis源码
目录。make第四步:安装
weixin_34211761
·
2020-09-14 11:51
Redis源码
-BFS方式浏览main函数
文章目录前言看代码的方式Redis服务器的main函数main函数分段解释函数名及参数启动测试程序程序环境初始化初始化配置信息存储参数信息根据参数确定启动方式处理并加载命令行参数打印启动和警告信息守护模式和初始化哨兵模式判断启动并加载持久化数据打印内存警告并启动事件监听彩蛋总结前言欠下的技术债慢慢还,继续为去年吹过的牛而努力。去年年末的时候意识到自己掌握的知识还不够深入,决定开始看一些开源项目的源
AlbertS
·
2020-09-13 19:38
Redis
Redis源码
BFS
redis
数据库
源码分析
centOS 安装 redis + 主从配置 + 哨兵模式
准备工作redisgcc主从配置规划ip角色192.198.75.136master192.168.75.137slave192.168.75.138slave开始部署官网下载
redis源码
解压redis
零度爱情12138
·
2020-09-13 18:57
数据库
redis
【Redis学习笔记】二、Redis Cluster集群搭建(基于redis-6.0.6)
RedisCluster集群搭建(基于redis-6.0.6)一、基础环境准备二、安装Redis1、安装依赖包2、获取
Redis源码
包(离线方式),并解压编译3、准备Redis配置文件4、启动6个Redis
xiao_zhu_kuai_pao
·
2020-09-13 16:34
Redis
Java
java
redis
【Redis学习笔记】一、Redis单机搭建(基于redis-6.0.6)
Redis单机搭建(基于redis-6.0.6)一、基础环境准备1、安装docker环境2、搜索centos镜像3、拉取centos镜像4、启动centos容器二、安装Redis1、安装依赖包2、获取
Redis
xiao_zhu_kuai_pao
·
2020-09-13 13:47
Java
Redis
java
redis
Redis源码
分析之anet网络通信的封装
anet是redis对tcp/ip网络中socketapi接口的一个全面的封装,针对server/client端。封装的api的接口如下,注释了主要的接口://tcp连接intanetTcpConnect(char*err,char*addr,intport);//非阻塞连接intanetTcpNonBlockConnect(char*err,char*addr,intport);//非阻塞绑定i
一缕阳光a
·
2020-09-13 07:47
C
数据库
分布式
redis
10个Redis使用技巧
Linux后台开发Redis值得我们研究技术点
Redis源码
缓存RedisRedis集群文尾推荐Redis的视频教程,需要的关注。私信:1领取下面我们将探索正确使用Redis的10个技巧
码农的1生
·
2020-09-13 06:26
c/c++
Linux服务器
架构
redis
程序人生
golang
linux
nginx
结合redis设计与实现的
redis源码
学习-26-工具函数(Util.h/.c)
Redis将很多的公用转换函数独立了出来,放入了Util.h中,包括字符串对比,内存转换,字符串数字转换,获取路径等,Redis的作者都是自己实现的,在这里我将这些函数认真学习,观察是在哪里高效并可以在之后的工作中使用。因为Util的函数都是完全独立逻辑的,所以我在这里只看.c文件Util.c#include#include#include#include#include#include#incl
YangGangAVA
·
2020-09-13 06:59
redis
工作中的小工具
redis源码
笔记 - redis-cli.c
这份代码是redis的client接口,其和server端的交互使用了deps目录下的hiredisc库,同时,在这部分代码中,应用了linenoise库完成类似history命令查询、自动补全等终端控制功能。1#include"fmacros.h"//用于mac下的兼容性处理2#include"version.h"//版本信息头文件,当前版本是2.4.1034#include5#include6
AirZH??
·
2020-09-13 06:09
redis源码
笔记 - redis对过期值的处理(in redis.c)
redis允许对key设置超时时间,实现过期key的自动淘汰。这篇blog分析下,其自适应(adaptive)的淘汰机制。redis每隔100ms定时执行的循环(serverCronfunction)里有如下语句:655/*Expireafewkeyspercycle,onlyifthisisamaster.656*OnslaveswewaitforDELoperationssynthesized
weixin_33716941
·
2020-09-13 06:13
Redis源码
剖析--内存分配
请持续关注我的个人博客:https://zcheng.ren深受侯捷老师的《STL源码剖析》一书的影响,在该书中开篇就对STL的空间配置器进行了一个详尽的介绍。以应用的角度而言,空间配置器是最不需要介绍的,它总是隐藏在一切组件的背后;可是,就源码分析而言,空间配置是最为关键的,也是分析源码之路的第一步!Redis在内存分配方面,仅仅是对系统的malloc/free做了一层简单的封装,然后加上了异常
ZeeCoder
·
2020-09-13 06:54
Redis
C-C++
redis
内存分配
源码
博客
侯捷
Redis源码
学习之【Tcp Socket封装】
介绍Redis对linuxsocket的封装,虽然在该封装中也含有对unixsocket的封装,但是普遍来说使用的tcpsocket。和上一篇的epoll的封装类似,都是通过调用底层的socket的函数完成一些列的方便的函数调用封装。源码anet.hanet.c分析主要包含以下几个封装函数(这里仅介绍关于Tcpsocket的封装函数)anetTcpconnect:创建socket并调用底层的con
yanchong
·
2020-09-13 06:01
Redis
Redis源码
剖析--事件ae
Redis源码
剖析搁浅了一段时间,由于自己对事件驱动以及Reactor模式的理解不够深,源码看起来比较吃力,思来想去,所幸自己去实现一个简单的事件驱动模型。
mhHao
·
2020-09-13 05:24
redis
Redis源码
剖析--通知Notify
Redis在2.8版本以后,增加了键空间(KeyspaceNotificationsfuture)通知功能,此特性允许客户端可以以订阅/发布的模式,接收那些对数据库中的键和值有影响的操作事件。Redis关于通知的源代码均在notify.c文件中实现,源码中只有三个功能函数,相对较为简单,但是要想理解其功能,就需要配合server.c和pubsub.c里面的部分代码。Notify概述对于Redis服
mhHao
·
2020-09-13 05:24
redis
redis
redis学习笔记->事件处理流程
最近开始学习
redis源码
,记录一下一、涉及的函数(省略了大量函数)redis的main函数在redis.c文件里,在main函数里,initServerConfig()函数设置全局变量server的每项默认值
cjk_cynosure
·
2020-09-13 05:45
redis
Redis源码
分析(三十二)--- redis-cli.c客户端命令行接口的实现(1)
分析了将近1个月的Redis源代码了,也到了最核心的,最贴近系统开始的地方了,我把他取名为main目录,里面就包括了2个重要的文件,redis-cli和redis文件,1个代表的是客户端的执行文件,1个代表的是服务端的文件,这2个也是整个系统最最核心的模块,所以我把他归结到main主程序模块了,主程序模块也是我学习Redis最后的一个模块,在这里一定能看到我之前看到的所有各个功能模块的痕迹。由于主
Android路上的人
·
2020-09-13 04:48
Redis源码
Redis源码分析
Redis源码
分析(二十一)--- anet网络通信的封装
昨天非常轻松的分析完Redis的事件驱动模型之后,今天我来看看anet的代码,anet是Redis对于Client/Server的网络操作的一个小小封装。代码中对此文件的官方解释为:/*anet.c--BasicTCPsocketstuffmadeabitlessboring*基于简单的基本TCP的socket连接后面的madeabitlessboring这在这里表示啥意思,就让我有点费解了,不过
Android路上的人
·
2020-09-13 04:16
Redis源码
Redis源码分析
Redis源码
学习-8-
Redis源码
网络部分简要分析
main函数流程文章目录main函数流程0.前言1.简要源码分析1.1小结0.前言接下来,我们就跟随一下代码,或者说函数调用栈,来看下。Redis是怎么做的。1.简要源码分析当前,我们先刨除一些业务上的代码,仅仅只看有关网络的代码。//redis.cintmain(intargc,char**argv){//初始化服务器//这里主要设置就是服务器的一些参数,可以不关心initServerConfi
patientcat
·
2020-09-13 04:20
redis源码学习
结合redis设计与实现的
redis源码
学习-15-TCP网络连接(anet.c)
anet.c中实现了一些网络相关的设置操作,可以参考我的linux网络编程那篇文章。这里使用的socket属性更多,帮我复习了tcp相关的知识。我们先来看anet.h#ifndefANET_H#defineANET_H#include#defineANET_OK0#defineANET_ERR-1#defineANET_ERR_LEN256/*Flagsusedwithcertainfunctio
YangGangAVA
·
2020-09-13 04:15
redis
redis源码
解读----Redis启动都干了啥
让我们直接main函数开始:123456789101112intmain(intargc,char**argv){structtimevaltv;/*Weneedtoinitializeourlibraries,andtheserverconfiguration.*/zmalloc_enable_thread_safeness();zmalloc_set_oom_handler(redisOutO
wintree
·
2020-09-13 04:31
unix/linux学习篇
C/C++学习
redis源码
分析(一):搭建调试环境
源码的获取方式就不说了,推荐一个带注释的3.x版本:https://github.com/huangz1990/redis-3.0-annotated拿到源码以后,可以看到其目录结构,JjdeMacBook-Pro:redis-3.0-annotated-unstablejjchen$ls00-RELEASENOTESCOPYINGMakefiledepsruntest-clustersrcBUG
newbei5862
·
2020-09-13 04:52
redis
Redis源码
分析(二)redis-cli.c
文章目录1.intmain()2.parseOptions(intargc,char**argv)进行ip和port的改变3.lookupCommand(char*name)查找命令,判断命令合法3.2strcasecmp(name,cmdTable[j].name)3.1redisCommandcmdTable[]4.cliSendCommand(intargc,char**argv)4.1cl
寇浩哲
·
2020-09-13 04:57
数据库
Redis源码分析
第六天:网络处理(anet部分)--
redis源码
慢慢学,慢慢看【redis6.0.6】
文章目录前奏初潮高潮迭起工具包anet.canetTcpConnect潮落anetUnixConnectRead、Write时间、心跳,相关高潮再起anetResolve字节序转换前奏今天,我找回了阔别已久的迷路的感觉,我觉得,顺序什么的,算了算了,还是按照我的喜好来。所以,这两天我决定学习网络模块。网络模块的文件:依旧要房山管理放上人家的版权:Copyright©2006-2012,Salvat
看,未来
·
2020-09-13 04:48
#
redis源码学习
redis
网络
socket
c++
linux
Redis源码
分析(八)——数据类型 redisObject
前面分析了Redis底层的几种基本数据结构,但是这些数据结构在redis中并不是直接使用的,而是封装成redis的数据类型(redisObject)来提供给系统使用。Redis的键值对可以保存不同类型的值,因此需要对键值的类型进行检查并根据不同类型进行多态处理。为了基于类型的操作更加方便,Redis创建了自己的类型系统,主要包括:字符串、哈希表、列表、集合和有序集五种类型,这些类型都是基于对前面的
独孤_子喻
·
2020-09-13 04:49
Redis源码分析
CentOS 7 上安装 redis3.2.3安装与配置
一、
redis源码
安装截至到2016.8.11,redis最新稳定版本为3.2.3.本篇文章我们就以此版本为基础,进行相关的讲解。
weixin_33675507
·
2020-09-13 03:29
C语言 __attribute__ 关键字理解
出现的问题下面是一段
redis源码
,其中出现了__attribute__,那么它到底是啥意思呢?
worse_man
·
2020-09-12 17:12
C
源码
redis
c语言
redis
redis源码
学习-编程技巧
#宏的用法#defineVERSION"6.0.1"#defineDATETIME"datetime"//将变量s以字符串的形式输出#definexstr(s)__str(s)#define__str(s)#s//使用宏拼接字符串#defineECHO_STR("jemalloc-"xstr(hello)"."xstr(world)"."xstr(version))//printf("%s\n",
猫步旅人
·
2020-09-12 16:46
redis源码学习
Redis源码
实现
数据结构与对象简单动态字符串Redis没有直接使用C语言传统的字符串(以空字符结尾的字符数组),而是自己构建了简单动态字符串类型(SDS)表示字符串在Redis里面,C语言传统字符串只会用在字符串常量,不需要对字符串内容进行修改的地方,例如打印日志redisLog(REDIS_ERROR,"errorlog")举个例子:客户端执行:setmsg“helloworld”Redis会在数据库中创建一个
So_Powerful
·
2020-09-12 13:15
Redis
java
redis
redis源码
解析(十一)hyperloglog算法源码分析
一.简介 HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的并且很小。详细关于hyperloglog算法实现原理可以参考此文,讲解的很细致。二.源码分析/*将稀疏存储改变为密集存储*ConverttheHLLwithsparserepresentationgivenasinputinitsdense*r
Ch_ty
·
2020-09-12 05:40
redis源码解析
redis源码
分析笔记03
红黑树和跳表1)结构的区别多层的有序链表,二叉树2)搜索的区别,大概率的o(logn)3)功能性的区别o(logn)zrangea,blogn*o(logn)4)实现上的区别,简单,复杂
jenie
·
2020-09-11 19:38
redis
Redis源码
阅读【9-持久化】
Redis源码
阅读【1-简单动态字符串】
Redis源码
阅读【2-跳跃表】
Redis源码
阅读【3-Redis编译与GDB调试】
Redis源码
阅读【4-压缩列表】
Redis源码
阅读【5-字典】
Redis源码
阅读
南蛮麟爷
·
2020-09-11 19:56
redis
源码阅读
Redis源码
阅读【番外篇-Redis的多线程】
Redis源码
阅读【1-简单动态字符串】
Redis源码
阅读【2-跳跃表】
Redis源码
阅读【3-Redis编译与GDB调试】
Redis源码
阅读【4-压缩列表】
Redis源码
阅读【5-字典】
Redis源码
阅读
南蛮麟爷
·
2020-09-11 19:26
redis
源码阅读
Redis源码
阅读【8-命令处理生命周期-3】
Redis源码
阅读【1-简单动态字符串】
Redis源码
阅读【2-跳跃表】
Redis源码
阅读【3-Redis编译与GDB调试】
Redis源码
阅读【4-压缩列表】
Redis源码
阅读【5-字典】
Redis源码
阅读
南蛮麟爷
·
2020-09-11 19:26
redis
源码阅读
Redis源码
阅读【8-命令处理生命周期-4】
Redis源码
阅读【1-简单动态字符串】
Redis源码
阅读【2-跳跃表】
Redis源码
阅读【3-Redis编译与GDB调试】
Redis源码
阅读【4-压缩列表】
Redis源码
阅读【5-字典】
Redis源码
阅读
南蛮麟爷
·
2020-09-11 19:26
redis
源码阅读
企业实战04_redis-cluster集群搭建
99213524#安装gccyuminstallgcc-c++#使用yum命令安装ruby(我们需要使用ruby脚本来实现集群搭建)yuminstallrubyyuminstallrubygems#将
redis
gblfy
·
2020-09-11 11:50
Redis
Redis
__attribute__((format(printf, 2, 3)))用法详解
_attribute_((format(printf,2,3)))用法详解在阅读
redis源码
的时候,遇到_attribute_((format(printf,2,3)))用法,在此记录下该用法的作用以及需要注意的点
langzi989
·
2020-09-11 10:28
C&C++学习
Redis源码
解析(5) 压缩列表
其他文章:
Redis源码
解析(1)动态字符串与链表
Redis源码
解析(2)字典与迭代器
Redis源码
解析(3)跳跃表
Redis源码
解析(4)整数集合
Redis源码
解析(5)压缩列表
Redis源码
解析(6
一个划水的人
·
2020-09-11 05:38
redis
上一页
5
6
7
8
9
10
11
12
下一页
按字母分类:
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
其他