随笔分类 -  Redis

摘要:内存资源对Redis来说是弥足珍贵的,有效的减少Redis的内存使用问题从而达到系统优化的目的。 一、LRU算法的基本原理 LRU算法:最近最少使用-Least Recently Used 从基本原理上来说,LRU算法会使用一个链表来维护缓存中每一个数据的访问情况,并根据数的实时访问,调整数据在链表 阅读全文
posted @ 2022-09-12 00:13 chch213 阅读(376) 评论(0) 推荐(0) 编辑
摘要:前言 我们先看一下正常情况的查询过程: 先查询 Redis,如果查询成功,直接返回,查询不存在,去查询 DB; 如果 DB 查询成功,数据回写 Redis,查询不存在,直接返回。 缓存穿透 定义:当查询数据库和缓存都无数据时,因为数据库查询无数据,出于容错考虑,不会将结果保存到缓存中,因此每次请求都 阅读全文
posted @ 2022-06-04 15:50 chch213 阅读(174) 评论(0) 推荐(0) 编辑
摘要:RDB 文件是将某一时刻的内存数据保存成一个文件,而 AOF 日志则会记录接收到的所有写操作。 AOF 重写函数与触发时机 首先,实现 AOF 重写的函数是 rewriteAppendOnlyFileBackground,它是在aof.c文件中实现的。在这个函数中,会调用 fork 函数创建一个 A 阅读全文
posted @ 2022-05-27 22:09 chch213 阅读(89) 评论(0) 推荐(0) 编辑
摘要:Redis作为键值对内存数据,那么我们怎么访问数据库?回想之前访问mysql数据库的流程:数据库连接-预编译-访问数据,针对公共方法提取成配置类。那么Redis也同样,需要先获取连接对象才能做数据的增删改查。 那么这个对象-RedisTemplate 那怎么配置和使用的? 一、Jedis连接方式配置 阅读全文
posted @ 2022-05-17 21:18 chch213 阅读(1890) 评论(0) 推荐(0) 编辑
摘要:redis database内存快照 一、RDB创建的入口函数和触发时机 源码文件:rdb.c 和 rdb.h int rdbSaveBackground(char *filename, rdbSaveInfo *rsi); Redis的bgsave命令 int rdbSaveToSlavesSoc 阅读全文
posted @ 2022-05-16 00:03 chch213 阅读(54) 评论(0) 推荐(0) 编辑
摘要:reactor模型应该是redis一道靓丽的风景点,也是面试经常提到的一部分内容。我觉得主要从2方面解答即可:1、reactor模型是什么? 2、redis如何与reactor模型相关联? 一、Reactor模型 Reactor模型就是网络服务器端用来处理高并发网络IO请求的一种编程模型。 不同请求 阅读全文
posted @ 2022-05-15 00:44 chch213 阅读(599) 评论(0) 推荐(0) 编辑
摘要:一、pom.xml依赖,本文基于2.5.1版本进行源码分析 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --><dependency> <groupId 阅读全文
posted @ 2022-05-14 18:14 chch213 阅读(1593) 评论(0) 推荐(0) 编辑
摘要:一、前言: 有序集合Sorted Set:底层数据结构跳表+哈希表 typedef struct zset { dict *dict; 哈希表 --哈希表高效支持单点查询 zskiplist *zsl; 跳表 --跳表高效支持范围查询 } zset; 源码文件:t_zset.c-各种操作实现 ser 阅读全文
posted @ 2022-05-14 15:19 chch213 阅读(96) 评论(0) 推荐(0) 编辑
摘要:Redis作为一款内存数据库,解决内存性能问题就显得尤为重要。作为Hash表这种应用数据结构,当数据量大的时候,就会出现2大问题:哈希冲突和rehash开销 一、什么是哈希冲突以及redis如何解决哈希冲突 哈希表是基于数组的一种存储方式.它主要由哈希函数和数组构成。 当要存储一个数据的时候,首先用 阅读全文
posted @ 2022-05-11 22:35 chch213 阅读(154) 评论(0) 推荐(0) 编辑
摘要:1、Redis前言 C语言的传统的字符串(以’\0’结尾的字符数组)表示。 SDS提升字符串的操作效率,同时也可以保存二进制数据。因为传统C字符串符合ASCII编码,这种编码的操作的特点就是:遇零则止 。即,当读一个字符串时,只要遇到’\0’结尾,就认为到达末尾,就忽略’\0’结尾以后的所有字符。因 阅读全文
posted @ 2022-05-11 00:03 chch213 阅读(88) 评论(0) 推荐(0) 编辑
摘要:上一次我们大概熟悉了一下redis的目录结构,里面提到了服务启动相关的源码主要包含如下两个文件: 找到server.c文件中的main函数开始了解服务的启动过程: 源码解析: 1、主流程: /* Global vars */ // 全局变量 struct redisServer server; /* 阅读全文
posted @ 2022-05-10 00:15 chch213 阅读(624) 评论(0) 推荐(0) 编辑
摘要:从事开发这么多年,给我最大的感触就是学习任何一个新技术还是要从底层源码开始,这样才能遇到问题知道怎么去分析解决,一直想记录下Redis的心得,现在就让开始redis之旅吧: Redis源码版本:5.0.14 一、redis是什么? 非关系型数据库-NOSQL,K-V存储系统,全称:remote di 阅读全文
posted @ 2022-05-09 22:22 chch213 阅读(408) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示