Redis应用场景非常广泛。虽然Redis是一个key-value的内存数据库,但在实际场景中,Redis经常被作为缓存来使用,如面对数据高并发的读写、海量数据的读写等。举个例子,A网站首页一天有100万人访问,其中有一个“积分商城”的板块,要直接从数据库查询,那么一天就要多消耗100万次数据库请求。如果将这些数据储存到Redis(内存)中,要用的时候,直接从内存调取,不仅可以大大节省系统直接读
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。 1. MySql+Memcached架构的问题实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着
转载 2023-07-19 13:56:36
70阅读
Redisredis能做什么基本数据结构字符串链表hash跳跃表整数集合压缩列表RedisObject单机数据库的实现数据库RDB持久化AOF持久化事件客户端服务器多机数据库的实现复制sentinel集群发布和订阅事物事物的实现watch命令的实现参考文献 redis能做什么redis是一款优秀的缓存开源项目。 提供多种数据结构支持,包括但不限于 字符串、链表、字典表、集合、位图。 可用于会话缓
转载 2023-12-30 15:47:44
35阅读
redis设计实现第一部分、数据结构对象一、简单动态字符串:在大多数情况下redis只会使用c字符串作为字面量,在大多情况下,redis使用SDS作为字符串表示。比起C字符串,SDS具有五种优点:SDS结构里面会有一个len变量,新增或者减len相应改变(而C语言并不会记录字符串的长度,如果直接用C语言的字符串则复杂度会变为O(N))常数复杂度获取字符串SDS结构体里面会有一个free变量记
Redis设计实现读书笔记 因为第四部分只挑了感兴趣的部分看,于是将第三第四部分合并起来。主要介绍的有: redis是如何实现主从一致的 redis的sentinel是如何发现下线服务器并进行故障转移的 redis的集群是如何进行数据分片的,什么是Gossip协议 redis的发布订阅功能是如何实现redis的事务第十五章 复制用户可以通过执行S
转载 2023-09-25 13:05:06
76阅读
文章目录前言第一部分 数据结构对象简单动态字符串链表字典hash算法rehash跳跃表有序表跳跃表跳表的搜索跳表的插入跳表的删除整数集合集合升级降级压缩列表对象字符串对象列表对象哈希对象集合对象有序集合类型检查内存回收对象共享 前言工作中经常会用到Redis,虽说会一些Redis的增删改查的API基本可以满足日常工作的需求,但是在一些时候还是会遇到一些疑惑。比如在插入string类型然后取出来
转载 2023-05-29 14:34:16
432阅读
由浅到深,逐步讲解Redis 本书主要分为四大部分。 第一部分"数据结构对象": 介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。 第二部分"单机数据库的实现": 对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。 第
原创 2022-04-30 17:14:25
286阅读
1点赞
0. 前言特性: redis内置集合数据类型,支持对集合执行交集、并集、差集等一部分命令只能对特定数据类型执行(append只能对字符串,hset只能对哈希表),还有一部分命令可以对全部的数据类型执行(del、type以及expire)1. 引言单机功能:第一部分、第二部分、第四部分多机功能:第三部分源代码:C语言相关订正信息:http://redisbook.com/2. 第2章 简单动态
转载 2023-10-18 22:13:13
52阅读
Redis设计实现(一~五整合版)by @飘过的小牛 一前言项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串。但是一直听说redis是一个很牛的开源项目,很多公司都在用。于是我就比较奇怪,这玩意不就和 memcache 差不多吗?仅仅是因为memcache是内存级别的,没有持久化功能。而redis支持持久化?难道这就是它的必杀技?带着这个疑问
Redis设计实现第一章数据结构对象(字符串)字符串的实现Redis并没有直接使用c语言里面的字符串表示,而是自己构造了名为简单动态字符串(SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。在Redis里面,C字符串只会作为字符串字面量(string literal)用在 一些无须对字符串值进行修改的地方,比如打印日志:redisLog(REDIS_WARNING,“Redis i
内容源于 《redis 设计实现 》一、概念 Redis 没有使用C语言传统的字符串表示 (以空字符结尾的字符数组) 而是自己构建了一种名为简单动态字符串(Simple dynamic string ,SDS) 并将SDS做为Redis的默认字符串表示 当Redis需要一个可以被修改的字符串值时,Redis就会使用SDS来表示字符串值,比如在Redis 数据库里面,包含字符串的键值对在底层都是S
转载 2023-07-07 15:37:14
86阅读
复制在Redis中,用户可以通过执行命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库状态一致”旧版复制功能的实现Redis的复制功能分为同步(sync)和命令传播(comma
转载 2023-07-09 13:04:30
115阅读
文章目录Redis中的数据结构1.SDS(动态简单字符串)1.1 SDS的定义1.2 减少修改字符串时带来的内存重分配次数1.3 C字符串的对比2.链表(linkedlist)2.1 链表和链表节点的实现3.字典(哈希)以hashtable为底层3.1 字典的实现3.2 哈希算法3.3 解决键冲突3.4 rehash(重新散列)3.5 渐进式rehash4.跳跃表(zskiplist)4.1
一 序  在看《redis设计实现》,书中的版本毕竟是3.0的老一些了,荣有参考意义,代码以3.2版本为准。    字符串是Redis中最为常见的数据存储类型,其底层实现是简单动态字符串sds(simple dynamic string),是可以修改的字符串。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 v
转载 2023-08-15 12:42:44
47阅读
文章目录阅读笔记:《Redis设计实现》第一部分:数据结构对象第一章:(简单动态字符串)第二章:(链表)第三章:(字典)第四章:(跳跃表)第五章:(整数集合)第六章:(压缩列表)第七章:(对象)第二部分:单机数据库的实现第一章:(数据库)第二章:(RDB持久化)第三章:(AOF持久化)第四章:(事件)第五章:(客户端)第六章:(服务器)第三部分:多机数据库的实现第一章:(复制)第二章:(Se
读《Redis设计实现》黄键宏著,笔记,第四部分。 目录第四部分 独立功能的实现4.1 发布订阅频道的订阅退订订阅频道退订频道模式的订阅和退订订阅模式退订模式发送消息将消息发送给频道订阅者将消息发送给模式订阅者查看订阅消息PUBSUB CHANNELSPUBSUB NUMSUBPUBSUB NUMPAT4.2 事务事务的实现事务开始命令入队事务队列执行事务WATCH 命令的实现使用 WA
转载 2023-07-13 14:38:42
56阅读
读《Redis设计实现》黄键宏著,笔记,第三部分。 目录第三部分 多机数据库的实现3.1 复制旧版复制功能的实现(2.8以前)同步命令传播旧版复制功能的缺陷新版复制功能的实现(2.8开始)部分重同步的实现复制偏移量复制积压缓冲区服务器运行 IDPSYNC 命令的实现复制的实现步骤 1:设置主服务器的地址和端口步骤 2:建立套接字连接步骤 3:发送 PING 命令步骤 4:身份验证步骤 5:发
初识Redis作者一开头就点明Redis的作用–“计算两个用户同时关注的人”,也就是取两个数据集的交集。作者一开始也是想通过关系型数据库的多次查找来解决这个问题,但显然这样很繁琐、耗时。于是面向百度编程找到了本书的主人公——RedisRedis是俄国一位程序员为解决一个门户网站的功能问题而创,是非关系型数据库,功能很多,最为人熟知的是可以用作缓存。(对Redis的第一印象)数据结构对象Redi
转载 2023-07-20 23:33:06
77阅读
一、文档介绍本文仅作为本人读书笔记使用,不对其中内容做解释,记录以本人可以看懂为标准该书以简明的方式主要介绍了Redis内部的运行机制,从数据结构到服务器构造,值得推荐                                &nbs
学完MySQL InnoDB之后,又开始学习和研究Redis。首先介绍下书:《Redis设计实现》第二版 黄健宏著,机械工业出版社,388页,基于redis3.0版本。版本有点低,这个影响不大,基本面变化不大,而变化的部分网上查资料可以弥补。一、概述Redis服务器是一个键值对(key-value pair)类型数据库服务器,属于NoSQL。Redis源码使用ANSI C语言编写而成。它最大的特
  • 1
  • 2
  • 3
  • 4
  • 5