&nbs
转载
2023-08-09 21:16:31
121阅读
以下内容默认以redis 2.8版本源码作为基础这篇Redis系列分三个部分对源码进行分析 · 基本数据类型 · 数据对象 · 事件驱动除此之外还有很多优秀的模块,只要掌握了以上三个模块,基本就可以靠自己去阅读Redis源码了。Redis的全部内容,可以分为几个部分· 基本数据结构· 数据对象· 核心逻辑-事件循环/事件驱动· 磁盘文件系统围绕核心的架构,Redis还可以区分出几个模块· 服务端/
转载
2023-10-11 23:22:08
10000+阅读
经过将近半个月的学习,终于将五种数据类型的源代码都学习了一遍,虽然不是全部阅读,但是大部分的代码都已经学习到了,趁五一假期好好整理和总结一下近期我们学习的内容。1 数据类型介绍 在Redis中有五种数据类型,分别是字符串、列表、集合、有序集合、哈希,在源代码 redis.h 头文件中,有对应他们的常量定义,每次判断对象类型的时候会使用到这几个常量。/* Object types */
#de
转载
2023-05-29 16:13:40
102阅读
这篇文档是关于Redis内部实现的概述,它提供了对Redis源代码结构、重要函数和结构的高层次理解。文档的目的是在不深入细节的情况下,给读者一个Redis服务器内部如何工作的大致概念。以下是对文档内容的解读:Redis源代码布局根目录:包含README文件、Makefile(用于构建Redis)、示例配置文件以及一些用于执行单元测试的shell脚本。重要目录src:Redis用C语言实现的核心代码
原创
2024-05-06 09:45:42
41阅读
文章目录前言一、数据库概念简介1.数据库定义2.数据库切换3.数据库键空间4.过期时间设置5.过期删除策略6.数据库通知二、数据库相关API1.数据库通知函数2.过期检查函数3.切换目标数据库函数4.设置过期时间函数5.查找key对应值函数总结 前言本文对Redis的数据库文件进行简要介绍,包括数据库的选择,键的新建更新删除、Redis过期策略以及事件通知等。一、数据库概念简介1.数据库定义Re
简单动态字符串(SDS)简单动态字符串(Simple Dynamic Strings),是 Redis 的基本数据结构之一,用于存储字符串和整型数据。相关代码文件github 地址 https://github.com/antirez/redis/tree/5.0/src 里:文件说明sds.hsds 数据结构声明sds.csds 数据结构实现sdsalloc.hsds 内存分配 api 。使用
转载
2023-07-07 10:09:50
63阅读
形象化设计模式实战 HELLO!架构 在redis的使用中,set/get无疑是使用最普遍的命令,我先telnet连接运行看看 先看get命令,获取一个key服务器返回了两行内容,是"$3\r\n123\r\n"(\r\n为换行符),不难发现3就是“123”的长度,redis的官方文档
转载
2023-07-09 22:49:38
53阅读
Redis 里面小于等于44个字节的字符串是embstr编码、大于44个字节是raw编码
转载
2023-06-18 12:51:11
65阅读
找工作那会儿,看了黄建宏老师的《Redis设计与实现》,对redis的部分实现有了一个简明的认识。在面试过程中,redis确实成为了面试官考核我的一个亮点,恰好以后的工作又与redis有着千丝万缕的联系,于是就想趁着毕业前的这段时间把redis的源代码研究一下,为以后的工作打个良好的基础。 Redis简介redis全称REmote DIctionary Server,是一个由Salvatore S
转载
2023-09-19 00:28:25
67阅读
概念 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持
转载
2023-10-11 21:53:11
42阅读
redigo 介绍 Go语言实现的开源 redis 客户端。特性提供类似 print 函数风格(Print-like)的 API,支持所有的 redis 命令;支持流水线事务(pipelined transaction);支持发布/订阅机制;支持使用连接池,提高并发操作;Lua 脚本辅助类型(script helper type),经过优化的 EVALSHA 功能;应答辅助函数(helper fu
转载
2023-05-29 22:15:02
116阅读
Redis简介redis全称REmote DIctionary Server,是一个由Salvatore Sanfilippo写的高性能key-value存储系统,其完全开源免费,遵守BSD协议。Redis与其他key-value缓存产品(如memcache)有以下几个特点。 + Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
转载
2023-09-18 22:38:54
36阅读
Redis客户端-Jedis源代码探索 博客分类:
源代码
jedis
redis
java
Redis的应用已经如火如荼了,你要是搞服务端的,说你还没用过,一些人又要从心里鄙视你n遍了。刚好在项目中实践了,有一点点心得,在这里跟大家交流一下。由于时间的关系,Redis的源码还未读完,今天先把客户端jedis的源码研究一下吧。看完代码后其实你可以自己实
转载
2023-07-09 23:53:38
61阅读
1.lpush-将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。2.lrange-返回列表指定区间内的元素。3.rpush-向存于 key 的列表的尾部插入所有指定的值。4.rpop-移除并返回列表的尾元素。5.lpop-移除并返回列表的头元素。6.lindex
转载
2023-06-14 21:44:20
83阅读
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisson,Jedis,lettuce等等,我们本篇就以Jedis为例进行Redis的学习以及
转载
2024-06-21 14:48:28
23阅读
前言Redis是一款高性能的开源key-value型数据库,难能可贵的是代码写得非常优雅。而今天分享这份笔记前半部分详细介绍了Redis中的各种数据结构,适合读者学习和掌握基本的数据结构;后半部分介绍了Redis命令执行的生命周期,以及各类命令的源码实现,希望使用Redis的读者不止会使用Redis,并且能掌握它的原理和细节,提升Redis的掌控能力。目录展示由于篇幅限制,下面仅仅截图展示部分内容
转载
2024-02-01 20:56:01
49阅读
一、src/server.c 中的redisCommandTable列出的所有redis支持的命令,其中字符串命令包括从get到mget;列表命令从rpush到rpoplpush;集合命令包括从sadd到sscan;有序集合命令从zadd到zscan;哈希表命令包括从hse到hscan;地理命令包括从geoadd到geodist;位操作从bitop到bitpos;HyperLogLog命令包含pa
转载
2023-07-27 16:08:17
63阅读
前面一系列的博客分析了Redis的基本数据结构,有动态字符串sds、双端链表sdlist、字典dict、跳跃表skiplist、整数集合intset和压缩列表ziplist等,这些数据结构对于用户来说是不可见的。
Redis在这些数据结构的基础上构建了对用户可见的五种类型,各自是string、hash、list、set和zset,为了更方便的使用这五种数据类型,Redis定义了RedisOb
转载
2021-08-06 13:00:07
250阅读
一、特殊编码:
自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化。其中,Hash、List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间,在有些情况下,可以省去9/10的空间。
这些特殊编码对于Redis的使用而言是完全透明的,事实上,它只是CPU和内存之间的一个交易而言。如果内存使用率方面高一些,
用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。他们可能遇到问题时,会更倾向于去找别人分享的答案。但往往很多时候,自己查到的资料并不能解决所有问题,尤其是比较细节的问题。从我的实战经验来看,遇到这种情况,通常就需要去源码中寻找答案了,因为在源码面前,这些细节会变得「一览无余」。而且我认为,掌握读源
转载
2024-01-11 13:50:17
42阅读