from: http://www.searchtb.com/2011/05/redis-storage.html
Redis: A persistent key-value database with built-in net interface written in ANSI-C for Posix systems
1 Redis 内存存储结构
本文是基于 Redis-v2.2.4 版本进行分析.
1.1 Redis 内存存储总体结构
Redis 是支持多key-value数据库(表)的,并用 RedisDb 来表示一个key-value数据库(表). redisServer 中有一个 redisDb *db; 成员变量, RedisServer 在初始化时,会根据配置文件的 db 数量来创建一个 redisDb 数组. 客户端在连接后,通过 SELECT 指令来选择一个 reidsDb,如果不指定,则缺省是redisDb数组的第1个(即下标是 0 ) redisDb. 一个客户端在选择 redisDb 后,其后续操作都是在此 redisDb 上进行的. 下面会详细介绍一下 redisDb 的内存结构.
redis 的内存存储结构示意图
redisDb 的定义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
typedef
struct
redisDb
{
dict *dict;
dict *expires;
dict *blocking_keys;
dict *io_keys;
dict *watched_keys;
int
id;
} redisDb;
struct
|
redisDb 中 ,dict 成员是与实际存储数据相关的. dict 的定义如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
background-color: white ! important; float: none ! important; height: auto ! important; line-height: 1.1em ! important; overflow: visible ! important; text-align: right !
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
redis缓存解决方案和基本命令,redisredis内存存储结构分析.Redis的数据全部放在内存带来了高速的性能,但是也带来一些不合理之处。比如一个中型网站有100万注册用户,如果这些资料要用Redis来存储,内存的容量必须...
(5)Redis内存存储结构分析 (6)redis起步 (7)Redis容量及使用规划 (8)Redis新的存储模式diskstore (9)Redis学习笔记 (11)redis应用场景 (12)redis应用之日志汇总 (13)构建可扩展微博架构 (14)浅谈redis的键值设计 (15...
教程名称:Redis精品资料荟萃课程目录:【】Redis Cookbook【】Redis 内存存储结构分析【】Redis 深入浅出【】redis介绍【】Redis学习笔记【】《Redis实战》电子书【】深入了解redis【】高性能NoSQL数据库Redis 盛大...
这是本人分redis内部数据存储结构的过程文档,部分无用细节忽略,这是数据存储结构的分析,没有增、删、改、查的动态处理过程,需要参考部分源码查看
Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等,并提供了丰富的API供开发者使用。 在Redis开发过程中,...
# MySQL篇内容 - 一条SQL语句的执行流程 - InnoDB数据读取和写入过程 - 基本数据结构介绍 - MyIsAM InnoDB 等存储引擎 ...- Redis、Memcached 对比分析 - 数据结构以及应用场景 - 缓存雪崩、缓存击穿、缓存穿透 ......
即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将它们存储在磁盘上。 这意味着Redis速度很快,但这也是非易失性的。 数据结构的实现强调内存效率,因此与使用高级编程语言建模的相同数据结构相比,...
即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将它们存储在磁盘上。 这意味着Redis速度很快,但这也是非易失性的。 数据结构的实现强调内存效率,因此与使用高级编程语言建模的相同数据结构相比,...
Redis通常用于缓存、消息队列、实时数据分析、计数器、排行榜等场景,Redis是一个功能强大的键值对存储数据库,具有高速、高可用、可扩展等特点,适用于各种应用场景。 它的主要特点包括: 速度快:Redis使用ANSI ...
即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将它们存储在磁盘上。 这意味着Redis速度很快,但这也是非易失性的。 数据结构的实现强调内存效率,因此与使用高级编程语言建模的相同数据结构相比,...
Redis还具有多种应用场景,如在Web应用中存储会话信息、实现消息队列、排行榜和计数器、分布式锁以及实时分析等。例如,Redis的发布订阅功能可以用来实现消息队列,通过将消息发布到特定的频道,可以让订阅该频道的...
Redis是一个开源的内存数据库,它被广泛用作缓存、消息队列和数据存储。Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,使其非常灵活和强大。 Redis的特点包括: - 高性能:Redis数据存储在...
Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中介。它支持多种数据类型,包括字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted set)等,并提供了丰富...
压缩列表(ziplist)是由一系列特殊编码的内存块构成的列表,它对于Redis的数据存储优化有着非常重要的作用。这篇文章总结一下redis中使用非常多的一个数据结构压缩链表ziplist。该数据结构在redis中说是无处不在也...
为了提高气象自动站资料的检索查询效率,采用基于内存Key-Value结构的Redis数据库技术,通过搭建Redis数据库集群,把数据缓存在内存中并实现主从复制,提出一种适合气象自动站数据特性的数据存储结构模型,使得高...
存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、...
使用模式包括(但不限于)键值数据库,缓存服务器,消息代理,会话存储,分析引擎等。 关于实用Redis 顾名思义,实用Redis是Redis的动手指南,由代码驱动。 每章都基于一个应用程序(简单到中等复杂性),该应用...
4.3.1 用内存映射文件存储数据 74 4.3.2 MongoDB集合和索引使用指南 75 4.3.3 MongoDB的可靠性和耐久性 75 4.3.4 水平扩展 76 4.4 键/值存储Memcached和Redis 78 4.4.1 Memcached的内部结构 78 4.4.2 Redis的...
内存:包括随机访问内存 (RAM) 和只读存储器 (ROM),用于临时或永久地存储程序和数据供CPU快速访问。 存储设备:如硬盘、固态硬盘 (SSD)、光盘驱动器等,用于长期保存大量的程序和数据。 输入/输出设备:如键盘、...