![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis从入门到入土
文章平均质量分 94
redis的使用
踏遍三十六岸
万般皆是命 半点不由人……
展开
-
Redis 大 Key 对持久化有什么影响?
当 AOF 写回策略配置了 Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。AOF 重写机制和 RDB 快照(bgsave 命令)的过程,都会分别通过fork()函数创建一个子进程来处理任务。创建子进程的途中,由于要复制父进程的页表等数据结构,阻塞的时间跟页表的大小有关,页表越大,阻塞的时间也越长;原创 2024-03-22 10:02:35 · 1040 阅读 · 0 评论 -
RDB 快照是怎么实现的?
大家好,我是小林哥。虽说 Redis 是内存数据库,但是它为数据的持久化提供了两个技术。分别是「 AOF 日志和 RDB 快照」。这两种技术都会用各用一个日志文件来记录信息,但是记录的内容是不同的。关于 AOF 持久化的原理我在上一篇已经介绍了,今天主要讲下。所谓的快照,就是记录某一个瞬间东西,比如当我们给风景拍照时,那一个瞬间的画面和信息就记录到了一张照片。所以,RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据,而 AOF 文件记录的是命令操作的日志,而不是实际的数据。原创 2024-03-21 10:09:56 · 973 阅读 · 0 评论 -
AOF 持久化是怎么实现的?
这次小林给大家介绍了 Redis 持久化技术中的 AOF 方法,这个方法是每执行一条写操作命令,就将该命令以追加的方式写入到 AOF 文件,然后在恢复时,以逐一执行命令的方式来进行数据恢复。Redis 提供了三种将 AOF 日志写回硬盘的策略,分别是 Always、Everysec 和 No,这三种策略在可靠性上是从高到低,而在性能上则是从低到高。原创 2024-03-21 09:41:58 · 1328 阅读 · 0 评论 -
Redis面试题 - Redis实战
lazyfree-lazy-server-del:有些指令在处理已存在的键时,会带有一个隐式的 del 键的操作,比如 rename 命令,当目标键已存在,Redis 会先删除目标键,如果这些目标键是一个 big key,就会造成阻塞删除的问题,此配置表示在这种场景中是否开启 lazy free 机制删除;可以看到,解锁是有两个操作,这时就需要 Lua 脚本来保证解锁的原子性,因为 Redis 在执行 Lua 脚本时,可以以原子性的方式执行,保证了锁释放操作的原子性。原创 2024-03-18 18:48:27 · 876 阅读 · 0 评论 -
Redis 过期删除策略和内存淘汰策略有什么区别?
Redis 使用的过期删除策略是「惰性删除+定期删除」,删除的对象是已过期的 key。内存淘汰策略是解决内存过大的问题,当 Redis 的运行内存超过最大运行内存时,就会触发内存淘汰策略,Redis 4.0 之后共实现了 8 种内存淘汰策略,我也对这 8 种的策略进行分类,如下:这期就到这里,下期见!原创 2024-03-18 18:35:32 · 1185 阅读 · 0 评论 -
Redis数据存储的细节
关于Redis数据存储的细节,涉及到内存分配器(如jemalloc)、简单动态字符串(SDS)、5种对象类型及内部编码、redisObject。在讲述具体内容之前,先说明一下这几个概念之间的关系。下图是执行set hello world时,所涉及到的数据模型。图片来源:https://searchdatabase.techtarget.com.cn/7-20218/原创 2024-03-17 16:52:32 · 1180 阅读 · 1 评论 -
Redis 三种集群方案
当我们的存取的 Key到达的时候,Redis 会根据 CRC16 的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。Redis 的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,很浪费内存,所以在 redis3.0上加入了 Cluster 集群模式,实现了 Redis 的分布式存储,原创 2024-03-17 11:32:33 · 1264 阅读 · 0 评论 -
数据库和缓存如何保证一致性?
一天,老板说「最近公司的用户越来越多了,但是服务器的访问速度越来越差的,阿旺帮我优化下,程序员阿旺听到老板口中的「画饼」后就非常期待,没有任何犹豫就接下了老板给的这个任务。阿旺登陆到了服务器,经过一番排查后,确认服务器的。这好办,给服务器加上 Redis,让其作为数据库的缓存。这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用在去查询数据库,从而减轻数据库的压力,提高服务器的性能。原创 2024-03-17 00:45:00 · 966 阅读 · 0 评论 -
什么是缓存雪崩、击穿、穿透?
引入了缓存层,就会有缓存异常的三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。原创 2024-03-17 00:15:00 · 829 阅读 · 0 评论 -
为什么单线程的 Redis 能那么快?
大家好我是苏麟 , 给大家找一些好的文章看看 .原创 2024-03-16 10:16:33 · 1102 阅读 · 0 评论 -
Redis入门-在Java中操作Redis
Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在 Spring 项目中,可以使用Spring Data Redis来简化 Redis 操作。,对相关api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下:ValueOperations:string数据操作SetOperations:set类型数据操作。原创 2024-01-08 14:23:33 · 1340 阅读 · 0 评论 -
Redis入门-五种对象数据类型
大家好我是苏麟 , 今天来说说Reids五种基本数据类型 .五种常用数据类型介绍。原创 2024-01-08 09:41:04 · 1051 阅读 · 0 评论 -
Redis入门-安装和启动
Redis是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。基于内存存储,读写性能高。原创 2024-01-07 21:10:35 · 1039 阅读 · 0 评论 -
Redis缓存简述
为了防止写入 Redis 的数据乱码 , 浪费空间等 , 可以自定义序列化器 .@Bean//设置KEY 序列化使用 String 字符串//设置Value 序列化 格式。原创 2023-10-05 16:30:38 · 117 阅读 · 0 评论