Redis
文章平均质量分 88
Java知识库
擅长JVM,Mysql,微服务架构性能调优,Spring Cloud Netfilx等常用框架源码解析Redis,等中间件技术架构设计及领域驱动设计。
展开
-
缓存预热与缓存清除:原理、作用和目的
缓存是一种数据存储技术,用于存储经常访问的数据,以便在需要时快速获取。通过缓存数据,可以减少数据的访问时间和系统的负载,从而提高应用程序的性能。缓存可以应用在多个层次,例如CPU缓存、数据库缓存和Web缓存。缓存预热是一种在应用程序启动或缓存失效之后,主动将热点数据加载到缓存中的策略。这样,在实际请求到达应用程序时,热点数据已经存在于缓存中,从而减少了缓存未命中的情况,提高了应用程序的响应速度。缓存清除是一种策略,用于在数据发生变化时删除或更新缓存中的相关数据,以确保缓存中的数据与数据源保持一致。原创 2023-04-23 13:10:28 · 948 阅读 · 0 评论 -
【硬核推荐】知乎上万转发的102W字Redis高手心法笔记
天下武功,⽆坚不可摧,唯快不破!今天跟着小编⼀起吃透 Redis,深层次的掌握 Redis 核⼼原理以及实战技巧。⼀起搭建⼀套完整的知识框架,学会全局观去整理整个知识体系。系统观其实是⾄关重要的,从某种程度上说,在解决问题时,拥有了系统观,就意味着你能有依据、有章法地定位和解决问题。原创 2023-03-22 10:54:24 · 360 阅读 · 0 评论 -
一口气讲完了Redis常用的数据结构及应用场景
Redis是互联网技术领域使用最为广泛的存储中间件,它是Remote Dictionary Service(远程字典服务)的首字母缩写,Redis以其超高的性能、活跃的社区、详细的文档以及丰富的客户端库支持在开源中间件领域广受好评,国内外很多大型互联网都在使用RedisTwitterGithub、新浪微博、阿里巴巴、京东、等,可以说,深入了解Redis应用和实践,已成为如今中高级后端加法绕不开的必备技能。原创 2023-02-07 10:18:42 · 266 阅读 · 0 评论 -
秒杀场景下的业务梳理——Redis分布式锁的优化
假设我们现在有一个商城系统,里面上线了一个商品秒杀的模块,那么这个模块我们要怎么设计呢?秒杀模块又会有哪些不同的需求呢?利用set nx ex获取锁,并设置过期时间,保存线程标示释放锁时先判断线程标示是否与自己一致,一致则删除锁 (Lua 脚本保证原子性)有哪些特性?利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性目前还有待完善的点:不可重入,同一个线程无法多次获取同一把锁不可重试。原创 2023-01-31 10:32:36 · 129 阅读 · 0 评论 -
成功上岸字节全靠这份Redis技术笔记,深入浅出值得一看
Redis作为同时具备高性能、高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还要能深入地理解底层实现原理,并且具备解决常见问题的能力。可以说,熟练掌握Redis已经成为了技术人的一个必备技能。Redis的key和数据结构应该怎么设计?有什么最佳实践方法?* Redis集群如何均衡数据?又如何横向扩展?* 怎么保证数据的一致性?热点数据的问题怎么解决?原创 2023-01-09 14:32:29 · 320 阅读 · 0 评论 -
Redis 异地双活实战
延迟是最致命的,众所周知redis的写入速度是非常高的,通常一个redis命令的写入是1ms以内,但是假如同步双写,则写入异地机房的时长会由两机房的物理距离决定,根据饿了么双活的测算,北京-上海的延迟大约为30ms,那这个异地的延迟是30倍,假设业务原先写入该redis命令的时间是1ms,那双写后变为31ms,显然这是无法接受的。双写,顾名思义就是两个机房同时写入,即在双活项目中,一个redis的命令写入本机房redis集群的同时,会同时写入另外一个机房的redis集群。-1命令主动请求全量同步。原创 2023-01-05 11:53:32 · 2152 阅读 · 0 评论 -
Reids的BigKey和HotKey
Redis big key problem,实际上不是大Key问题,而是Key对应的value过大,因此严格来说是Big Value问题,Redis value is too large (key value is too large)。到底多大的value会导致big key问题,并没有统一的标准。例如,对于String类型的value,有时候超过5M属于big key,有时候稳妥起见,超过10K就可以算作Bigey。Big Key会导致哪些问题呢?原创 2023-01-05 09:34:42 · 517 阅读 · 0 评论 -
一口气讲透Redis分布式缓存、秒杀 + 思维导图
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。因为是记录命令,AOF文件会比RDB文件大的多。通过执行bgrewriteaof命令,可以让AOF文件执行重写功能,用最少的命令达到相同效果。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。RDB和AOF各有自己的优缺点,如果对数据安全性要求较高,在实际开发中往往会结合两者来使用。RDB会在什么时候执行?当主进程执行写操作时,则会拷贝一份数据,执行写操作;原创 2022-12-29 10:51:35 · 483 阅读 · 0 评论 -
搞懂Redis 数据存储原理,别只会 set、get 了
我的核心模块如图 1-10。图 1-10Client 客户端,官方提供了 C 语言开发的客户端,可以发送命令,性能分析和测试等。网络层事件驱动模型,基于 I/O 多路复用,封装了一个短小精悍的高性能 ae 库,全称是 a simple event-driven programming library。原创 2022-12-22 09:42:55 · 1185 阅读 · 0 评论 -
7张图,剖析Redis缓存,文末附Redis工具类源码,建议收藏
缓存击穿也叫热点key问题,就是一个被高并发访问并且缓存重建业务较复杂的key失效了,无数的请求访问会在瞬间打到数据库,带来巨大压力。缓存穿透是指客户端请求的数据在Redis和数据库中都不存在,这样就无法进行缓存,这些请求都会打到数据库。对不存在的数据也在Redis中建立缓存,值为空,并设置一个较短的TTL时间。逻辑过期的优点是性能好,缺点是不保证一致性,有额外的内存消耗,实现复杂。缓存就是数据交换的缓存区,是存储数据的地方,一般读写性能较高。编写业务逻辑,在修改数据库的同时,更新缓存。原创 2022-12-21 10:30:18 · 702 阅读 · 0 评论 -
如何解决 Redis 数据倾斜、热点等问题
Redis 集群 总共有4台机器,假设数据分布均衡,每台机器承担 四分之一的流量,如果某一台机器突然挂了,顺时针方向下一台机器将要承担这多出来的 四分之一 流量,最终要承担 二分之一 的流量,还是有点恐怖。由于业务数据特殊性,按照指定的分片规则,可能导致不同的实例上数据分布不均匀,大量的数据集中到了一台或者几台机器节点上计算,从而导致这些节点负载多大,而其他节点处于空闲等待中,导致最终整体效率低下。如果集群的机器不多,且平时单机的负载水位很高,某个节点宕机带来的压力很容易引发雪崩效应。原创 2022-12-12 09:56:50 · 1373 阅读 · 0 评论 -
刨根问底 Redis,对面试来说小菜一碟
虽然Redis的Transactions 提供的并不是严格的 ACID的事务(如一串用EXEC提交执行的命令,如果在执行中服务器宕机,那么会有一部分命令执行一部分命令未执行),但这些Transactions还是提供了基本的命令打包执行的功能(在服务器不出问题的情况下,可以保证一连串的命令是顺序在一起执行的。如果打开了虚拟内存功能,当内存用尽时,Redis就会把那些不经常使用的数据存储到磁盘,如果Redis中的虚拟内存被禁了,它就会操作系统的虚拟内存(交换内存),但这时Redis的性能会急剧下降。原创 2022-11-17 13:51:48 · 280 阅读 · 0 评论 -
为了面试字节,熬夜肝完这份Redis笔记后,我终于“硬”了一回
包含Redis的特点和功能,Redis缓存的使用,Redis为什么能这么快,Redis缓存的淘汰策略,持久化的两种方式,Redis高可用部分的主从复制和哨兵的基本原理。只要功夫深,铁杵磨成针,平时准备好,面试不用慌。虽然面试不一定是这样问的,但万变不离其“宗”。原创 2022-11-06 15:32:02 · 191 阅读 · 0 评论 -
Redis 知识点全面击破,多图警告
Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。正在上传…重新上传取消Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像 Memcached,但随着 Redis 的改进,它在许多其他用例中变得可行,包括发布-订阅机制、流(streaming)和队列。正在上传…重新上传取消。原创 2022-10-31 10:57:16 · 150 阅读 · 0 评论 -
为什么Redis的数据被删除,内存占用还这么大?
内存碎片会造成明明有内存空间空闲,可是却无法存储数据。举个例子,你跟漂亮小姐姐去电影院看电影,肯定想连在一块。假设现在有 8 个座位,已经卖出了 4 张票,还有 4 张可以买。可是好巧不巧,买票的人很奇葩,分别间隔一个座位买票。即使还有 4 个座位空闲,可是你却买不到两个座位连在一块的票,厚礼蟹!如果你发现明明 Redis 存储数据的内存占用远小于操作系统分配给 Redis 的内存,而又无法保存数据,那可能出现大量内存碎片了。原创 2022-10-29 10:12:37 · 228 阅读 · 0 评论 -
Spring Boot + Redis 实现分布式锁,还有谁不会??
对于耗时业务和核心数据,不能让重复的请求同时操作数据,避免数据的不正确,所以要使用分布式锁来对它们进行保护。原创 2022-10-26 10:17:05 · 182 阅读 · 0 评论 -
Redis 的数据被删除,内存占用还这么大?
内存碎片会造成明明有内存空间空闲,可是却无法存储数据。举个例子,你跟漂亮小姐姐去电影院看电影,肯定想连在一块。假设现在有 8 个座位,已经卖出了 4 张票,还有 4 张可以买。可是好巧不巧,买票的人很奇葩,分别间隔一个座位买票。即使还有 4 个座位空闲,可是你却买不到两个座位连在一块的票,厚礼蟹!内存碎片如果你发现明明 Redis 存储数据的内存占用远小于操作系统分配给 Redis 的内存,而又无法保存数据,那可能出现大量内存碎片了。通过命令,看下内存碎片指标是否正常。原创 2022-09-05 15:20:41 · 229 阅读 · 0 评论