
Redis
文章平均质量分 93
加班不秃顶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis深入浅出【九】Redis的事务机制
Redis的事务提供了一种将多个命令打包,然后一次性、有序地执行的机制,它的原理是多个命令会被入队到事务队列中,然后按先进先出(FIFO)的顺序执行,并且事务在执行过程中不会被中断,当事务队列中的所有命令都被执行完毕之后,事务才会结束。原创 2025-06-20 16:57:38 · 361 阅读 · 0 评论 -
Redis深入浅出【八】发布与订阅
Redis的事务提供了一种将多个命令打包,然后一次性、有序地执行的机制,它的原理是多个命令会被入队到事务队列中,然后按先进先出(FIFO)的顺序执行,并且事务在执行过程中不会被中断,当事务队列中的所有命令都被执行完毕之后,事务才会结束。原创 2025-06-19 21:37:02 · 983 阅读 · 0 评论 -
深入浅出Redis【七】发布与订阅
SUBSCRIBEPSUBSCRIBE这7个命令的核心都是基于存储在服务器状态的字典和链表实现的。原创 2025-06-19 21:36:00 · 815 阅读 · 0 评论 -
深入浅出Redis【六】设置/移除键的过期时间
是Time To Live的缩写,用来查看某个key的剩余生存时间,单位为秒。类似,也是用来查看某个key的剩余生存时间,但单位为毫秒。类似,也是用来给指定的key设置过期时间,但单位为毫秒。命令用来给指定的key设置过期时间,但指定的是某个时间点。如果key不存在或者key没有设置过期时间,返回0。类似,用来给指定的key设置过期时间,但指定的是点。命令用来给指定的key设置过期时间,单位为秒。如果key没有设置过期时间,返回-1。如果key没有设置过期时间,返回-1。命令用来移除指定key的过期时间。原创 2025-06-19 21:34:29 · 368 阅读 · 0 评论 -
深入浅出Redis【五】Redis的过期键删除策略?
对于Redis服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费,因此我们需要考虑一个问题:如果一个键过期了,它什么时候会被删除呢?原创 2025-06-18 21:12:04 · 993 阅读 · 0 评论 -
深入浅出Redis【四】Redis的复制机制(主从复制)
还有个原因就是,虽然Redis的性能很好,但单台毕竟还是有瓶颈的,使用主从复制可以实现读写分离,提高Redis的高可用性,即主服务器用来执行写命令,多个从服务器用来执行读命令,类似于数据库的读写分离。,当从服务器在断线后重新连接主服务器时,如果条件允许,主服务器可以将主从服务器连接断开期间执行的写命发送给从服务器,从服务器只要接收并执行这些写命令,就可以将数据库更新至主服务器当前所处的状态。举个具体的例子,从服务器B一直在复制着主服务器A,刚开始都是正常的,主服务器A执行的写命令也都通过命令。原创 2025-06-18 21:11:02 · 850 阅读 · 0 评论 -
深入浅出Redis【三】Redis的持久化机制(RDB、AOF)
为了解决AO文件体积越来越大的问题,Redis提供了AOF文件重写功能,即Redis服务器会创建一个新的AOF文件来替代现有的AOF文件,新旧两个AOF文件所保存的数据库数据相同,但新AOF文件不会包含任何浪费空间的冗余命令,所以新AOF文件的体积通常会比旧AOF文件的体积要小很多。由上述实现方式可知,RDB持久化记录的是结果,AOF持久化记录的是过程,所以AOF持久化生成的AOF文件会有体积越来越大的问题,Redis提供了AOF重写功能来减小AOF文件体积。原创 2025-06-18 21:09:58 · 815 阅读 · 0 评论 -
深入浅出Redis【二】Redis的5种数据结构及其常用命令
注意事项:Redis可以存储键(key)值(value)对的映射,其中键(key)一直是String,而值可以是上面提到的5种数据结构中的一种。原创 2025-06-18 21:08:39 · 962 阅读 · 0 评论 -
深入浅出Redis【一】Redis简介及环境安装
什么是Redis呢?Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。它支持诸如字符串、散列、列表、集合、有序集合等数据结构。--Redis官网Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的高性能的key-value数据库。-- 百度百科Redis是一款依据BSD开源协议发行的高性能key-value存储系统,通常被称为数据结构服务器。-- 其它网友。原创 2025-06-18 21:07:41 · 985 阅读 · 0 评论 -
【Redis】认识Redis集群!
Redis单实例的架构,从最开始的一主N从,到读写分离,再到Sentinel哨兵机制,单实例的Redis缓存足以应对大多数的使用场景,也能实现主从故障迁移。但是,在某些场景下,单实例存Redis缓存会存在的几个问题:写并发:Redis单实例读写分离可以解决读操作的负载均衡,但对于写操作,仍然是全部落在了master节点上面,在海量数据高并发场景,一个节点写数据容易出现瓶颈,造成master节点的压力上升。原创 2025-06-12 21:11:47 · 1001 阅读 · 0 评论 -
【Redis】Redis探秘Sentinel(哨兵模式)!
Redis的高可用机制有持久化、复制、哨兵和集群。持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。哨兵实现了主从复制中故障的自动化恢复。缺陷:写操作无法负载均衡;存储能力受到单机的限制。原创 2025-06-12 21:10:09 · 969 阅读 · 0 评论 -
【Redis】一文聊清楚Redis主从复制原理
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点,而对于redis来说,一主两从是比较常见的搭配。主节点(Master)同时对外提供读和写操作从节点(Slave)通过replicate同步的方式,从主节点复制数据,保持自身数据与主节点一致从节点只能对外提供读操作当然,对于读多写少类的操作,为了提升整体读请求的处理能力,可以采用一主多从的方式。原创 2025-06-12 21:03:56 · 940 阅读 · 0 评论 -
【Redis】Redis中常见的延迟问题 !
使用复杂度高的命令,执行命令时就会耗时存储大key:如果一个key写入的数据非常大,Redis在分配内存、删除大key时都会耗时,并且持久化AOF的写回策略是always时会影响Redis性能集中过期:Redis的主动过期的定时任务,是在Redis主线程中执行的,最差的情况下会有25ms的阻塞实例内存达到上限时,淘汰策略的逻辑都是在访问Redis时,真正命令执行之前执行的,也就是它会影响真正需要执行的命令。原创 2025-06-04 11:30:00 · 800 阅读 · 0 评论 -
【Redis】Redis中的分布式锁(步步为营)!
分布式锁指的是,所有服务中的所有线程都去获取同一把锁,但只有一个线程可以成功的获得锁,其他没有获得锁的线程必须全部等待,直到持有锁的线程释放锁。分布式锁是可以跨越多个实例,多个进程的锁互斥性:任意时刻,只能有一个客户端持有锁锁超时释放:持有锁超时,可以释放,防止死锁可重入性:一个线程获取了锁之后,可以再次对其请求加锁高可用、高性能:加锁和解锁开销要尽可能低,同时保证高可用安全性:锁只能被持有该锁的服务(或应用)释放。容错性:在持有锁的服务崩溃时,锁仍能得到释放,避免死锁。原创 2025-06-04 10:30:00 · 833 阅读 · 0 评论 -
【Redis】Redis究竟为什么这么快?
多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,然后程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。在redis的多线程模式下,获取、解析命令,以及输出结果着两个过程,可以配置成多线程执行的,因为它毕竟是我们定位到的主要耗时点,但是命令的执行,也就是内存操作,依然是单线程运行的。原创 2025-06-04 09:30:00 · 680 阅读 · 0 评论 -
【Redis】Redis中有事务吗?有何不同?
多数事务失败是由语法错误或者数据结构类型错误导致的,语法错误说明在命令入队前就进行检测的,而类型错误是在执行时检测的,Redis为提升性能而采用这种简单的事务,这是不同于关系型数据库的,特别要注意区分。当事务开启时,事务期间的命令并没有执行,而是加入队列,只有执行EXEC命令时,事务中的命令才会按照顺序执行,也就是说事务间就不会存在数据脏读、不可重复读、幻读的问题,因此就没有隔离级别。在运行时检测类型错误,此时事务并没有回滚,而是跳过错误命令继续执行, 结果B值改变、A保留原值。原创 2025-06-04 08:30:00 · 805 阅读 · 0 评论 -
【Redis】万字长文带你深入Redis底层数据结构!
Redis 的键值对中的 key 就是字符串对象,而 value 就是指Redis的数据类型,可以是String,也可以是List、Hash、Set、 Zset 的数据类型。其实是Redis 底层使用了一个保存所有键值对,哈希表的最大好处就是 O(1) 的时间复杂度快速查找到键值对。哈希表其实就是一个数组,数组中的元素叫做哈希桶。cstruct redisServer { //... redisDb *db; //... int dbnum; //默认16个}typedef str原创 2025-06-04 07:30:00 · 1828 阅读 · 0 评论 -
【Redis】Redis中常见的数据类型及其应用场景!
适用于二值状态统计的场景。原创 2025-06-03 13:24:14 · 550 阅读 · 0 评论 -
Java面试:Redis如何实现高并发场景下的计数器设计?
大部分互联网公司都需要处理计数器场景,例如风控系统的请求频控、内容平台的播放量统计、电商系统的库存扣减等。传统方案一般会直接使用,这是最简单的方式,但这种方式在生产环境中会暴露严重问题:java// 隐患示例// 若未设置TTL,key将永久驻留内存INCR 有,即当 Redis 检测到目标 key 不存在时,会,再执行递增操作。原创 2025-05-28 18:34:33 · 901 阅读 · 0 评论 -
缓存穿透的解决方式?—布隆过滤器
布隆过滤器是由布隆(Burton Howard Bloom)在1970年提出的 一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,查询时可以用来判断 “一定不存在或者可能存在”,它是用多个哈希函数,将一个数据映射到位图结构中。布隆过滤器的空间效率O(m) 和查询时间O(k) 都很优秀,但是存在一定的误判率 (布隆过滤器认为不存在,则一定不存在;布隆过滤器认为存在,则只是可能存在)bit数组的位数m越大,hash函数的个数k越多,误判率就越低。原创 2025-05-27 21:33:29 · 1213 阅读 · 0 评论 -
“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?
谈起 Redis 和 MySQL,皆是广大 程 序 猿(媛)朋友面试跳槽必踩的两个坑。那么,关于Redis与MySQL,面试官最爱问哪些问题呢?不知道也不用慌,我已整理了这“68道 Redis+168道 MySQL” 精品面试题(带解析),速来试试你 背 “废” 了吗?68道 Redis精品面试题(带解析)刷Redis面试题之前,给大家梳理一下整个Redis架构的知识,顺带手绘了一版xmind的架构脑图,不过原件无法直接上传,上面直接截图展现!内容偏多,若要参考这份Redis的架构.原创 2021-06-05 14:48:40 · 348 阅读 · 7 评论 -
Redis数据类型大全:“5种基础”数据类型+“3种特殊”数据类型
关于深入学习“Redis”,有整理相关全套的Redis面试高频问题(附解析)、引导学习的知识路线大纲(手绘xmind版)、手写笔记pdf等,如需一起学习→戳此即可,或者直接扫描下方一、“5种基础”数据类型Redis 有望所有的key(键)都是字符串。我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash1.1 Redis数据结构简介Redis基础文章非常多,关于基础数据结构类型,我推荐你先看下官方.原创 2021-05-11 13:57:05 · 513 阅读 · 1 评论