Redis
good-destiny
这个作者很懒,什么都没留下…
展开
-
Redis教程:事件、客户端和服务器
1 事件 Redis服务器是一个事件驱动程序,服务器需要处理以下两类事情: 文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作 时间事件(time event):Redis服务器中的...原创 2020-02-23 22:17:34 · 242 阅读 · 0 评论 -
Redis教程:数据持久化
目录 1 RDB持久化 1.1 RDB文件的创建和载入 1.2 自动间隔性保存 1.3 RDB文件结构 2 AOF持久化 2.1AOF持久化的实现 2.2AOF文件的载入与数据还原 1 RDB持久化 Redis提供了RDB持久化功能,可以将Redis内存中的数据库状态保存到磁盘中,避免数据意外丢失。 1.1 RDB文件的创建和载入 有两个Red...原创 2020-02-23 20:38:27 · 174 阅读 · 0 评论 -
Redis教程:数据库
1 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构体的db数组中,db数组的每个项都是一个redis.h/redisDb结构体,每个redisDb结构体代表一个数据库 redis.h struct redisServer { …… //一个数组,保存着服务器中所有数据库 redisDb *db...原创 2020-02-23 12:06:45 · 290 阅读 · 0 评论 -
Redis教程:主从复制
目录 1 主从配置方法 2 主从复制的作用 3 主从复制的机制 3.1全量数据同步(full resyncchrozation) 3.2 增量同步 4 主从复制的实现 4.1主从关系的建立 1 主从配置方法 配置文件: 在从服务器的配置文件中加入:slaveof ip port 启动命令: redis-server启动命令后加入 --slaveof ip p...原创 2020-02-22 22:35:00 · 282 阅读 · 0 评论 -
Redis教程:数据对象分析(二)
目录 1 类型检查与命令多态 2 内存回收 3 对象共享 4 对象的时转时长 1 类型检查与命令多态 Redis中用于操作键的命令基本上可以分为两种类型:其中一种命令可以对任何类型的键执行,比如DEL命令、EXPIRE命令、RENAME命令、TYPE命令、OBJECT命令等。举个栗子,DEL命令可以用来删除三种不同类型的键: # 字符串键 127.0.0.1:6379...原创 2020-02-21 21:39:03 · 216 阅读 · 0 评论 -
Redis教程:数据对象分析(一)
1、 五种基本数据对象 图1 redis数据对象 2、 数据结构对象分析 Redis中的每个对象都由一个redisObject结构表示,该结构中保存数据相关的三个属性分别是:type、encoding、ptr。 redis.h typedef struct redisObject { //类型 unsigned type:4; unsigned n...原创 2020-02-21 16:51:19 · 275 阅读 · 0 评论 -
redis源码剖析(7):基础数据结构quicklist
目录 1、quicklist概述 2、quicklist源码分析 2.1 定义 2.2push操作 2.3 节点压缩 3、总结 1、quicklist概述 quicklist是一个3.2版本之后新增的基础数据结构,是redis自定义的一种复杂数据结构,将ziplist和adlist结合到了一个数据结构中。主要是作为list的基础数据结构。 在3.2之前,list是...转载 2019-12-03 18:42:10 · 170 阅读 · 0 评论 -
redis源码剖析(6):基础数据结构ziplist
目录 1、简介 2、数据存储 2.1 编码 2.2 结构体entry 3、基本操作 3.1 创建压缩列表 3.2 插入元素 3.3 删除元素 3.5 遍历压缩列表 4、连锁更新 5、总结 1、简介 压缩列表(ziplist)本质上就是一个字节数组,是Redis为了节约内存而设计的一种线性数据结构,可以包含任意多个元素,每个元素可以是一个字节数组或一个整数。 ...转载 2019-12-03 17:07:09 · 169 阅读 · 0 评论 -
redis源码剖析(5):基础数据结构inset
目录 1、intset概述 2、inset分析 2.1 定义 2.2 新增元素 2.3 升级 2.4 总结 1、intset概述 整数集合是redis对外数据结构set的底层实现之一,当集合元素不大于设定值并且元素都是整数时,就会用intset作为set的底层数据结构。 2、inset分析 2.1 定义 inset结构体定义如下: typedef ...转载 2019-12-03 16:34:33 · 404 阅读 · 0 评论 -
redis源码剖析(3):基础数据结构dict
目录 1、dict概述 2、字典的定义 3、哈希算法 4、字典的初始化及新增键值对 4.1 字典初始化 4.2 新增键值对 5、rehash(重新散列)操作 5.1 rehash操作方式 5.2 rehash发生时候 6、渐进式rehash 7、总结 8、参考 1、dict概述 dict顾名思义就是字典,也就是保存一种键值对的数据结构。每个键都是唯一的,不同...原创 2019-12-03 15:59:24 · 233 阅读 · 0 评论 -
redis源码剖析(2):基础数据结构ADLIST
目录 1、ADList概述 2、链表和链表节点定义 3、链表迭代器 4、总结 1、ADList概述 ADList(A generic doubly linked list)是redis自定义的一种双向链表,广泛运用于redisClients、redisServer、发布订阅、慢查询、监视器等(注:3.0及以前还会被运用于list结构中,在3.2以后...转载 2019-12-02 23:04:19 · 149 阅读 · 0 评论 -
redis源码剖析(1):基础数据结构SDS
目录 1、SDS概述 2、SDS的定义 2.1 3.2版本和3.0版本的差别 3、SDS数据结构解读 4、SDS重点源码分析 4.1 创建SDS 4.2 SDS拼接 4.3 SDS惰性空间释放 5、总结 1、SDS概述 redis没有直接使用c语言的字符串,而是自己定义了一个字符串数据结构:SDS(simple dynamic string)作为默认的...转载 2019-12-02 22:44:02 · 200 阅读 · 0 评论 -
redis源码剖析(4):基础数据结构skiplist
目录 1、跳跃表的zset应用场景分析 2、跳跃表的源码实现 2.1跳跃表的基本数据结构 2.2 跳跃表的结构图 2.3 跳跃表的创建 2.4 跳跃表的插入 3、参考 1、跳跃表的zset应用场景分析 众所周知Redis中每种基本类型都有2种或以上的底层实现,一般使用到ZSET时,我们会说它的实现是基于ziplist和skiplist实现的,这提供了多样性...原创 2019-12-02 17:57:59 · 145 阅读 · 0 评论 -
Redis教程:常见问题分析
1、redis的优势? 性能很好 支持事务 支持丰富的数据类型 支持数据持久化 2、redis为什么这么快? 纯内存操作 单线程操作,避免了频繁的上下文切换 采用了非阻塞I/O多路复用机制 图1redis线程模型 3、 redis 的持久化机制? Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启...原创 2019-11-28 20:30:40 · 206 阅读 · 0 评论 -
Redis教程:基础知识
目录 1、redis配置 2、redis数据备份与恢复 3、redis性能测试 4、HyperLogLog 结构 5、Redis发布订阅 6、Redis 事务 7、Redis 服务器 参考: 1、redis配置 获取redis配置信息 redis 127.0.0.1:6379> CONFIG GET * 编辑配置 redis 127.0.0.1:6379> ...原创 2019-11-19 23:32:16 · 122 阅读 · 0 评论