
高性能分布式缓存Redis
文章平均质量分 93
如果你正在寻找一篇关于高性能分布式缓存的专栏文章,那么你来对地方了!《高性能分布式缓存Redis》专栏将为你提供关于Redis的一切知识。Redis是一种快速、可靠、高效的内存缓存系统,它不仅可以提高应用程序的性能,还可以加速数据访问速度。在这个专栏中,你将了解Redis的基础知识,包括如何安装和配
Java-You
发现更优秀的自己,我们不是程序员,我们是一名优秀的软件设计师!
展开
-
《Redis主从复制大揭秘:性能翻倍,让你的缓存飞一般的体验!》
当客户端向从服务器发送slaveof(replicaof) 主机地址(127.0.0.1)端口(6379)时:从服务器将主机ip(127.0.0.1)和端口(6379)保存到redisServer的masterhost和masterport中。当同步数据完成后,主从服务器就会进入命令传播阶段,主服务器只要将自己执行的写命令发送给从服务器,而从服务器只要一直执行并接收主服务器发来的写命令。从服务器将向发送SLAVEOF命令的客户端返回OK,表示复制指令已经被接收,而实际上复制工作是在OK返回之后进行。原创 2023-05-19 12:25:21 · 11372 阅读 · 2 评论 -
《纵横高并发世界,Redis分布式锁让你秒杀无敌!》
传统的session是由tomcat自己进行维护和管理,但是对于集群或分布式环境,不同的tomcat管理各自的session,很难进行session共享,通过传统的模式进行session共享,会造成session对象在各个tomcat之间,通过网络和Io进行复制,极大的影响了系统的性能。答案是肯定的,比如客户端A加锁,一段时间之后客户端A解锁,在执行jedis.del()之前,锁突然过期了,此时客户端B尝试加锁成功,然后客户端A再执行del()方法,则将客户端B的锁给解除了。那么是否真的有这种场景?原创 2023-05-18 21:23:06 · 14820 阅读 · 1 评论 -
《Redis缓存神器:解决缓存穿透、雪崩、击穿问题的完美方案》
这个时候,需要考虑一个问题:缓存被“击穿”的问题,这个和缓存雪崩的区别在于这里针对某一key缓存,前者则是很多key。单个简单的key存储的value很大,可以尝试将对象分拆成几个key-value,使用mget获取值,这样分拆的意义在于分拆单次操作的压力,将操作压力平摊到多次操作中,降低对redis的IO影响。缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。原创 2023-05-18 21:18:42 · 10961 阅读 · 1 评论 -
《Redis缓存大作战:掌握缓存预热与设计要素》
因为静态文件(比如css,js,图片)中,很多都是不经常更新的。通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。缓存的设计要分多个层次,在不同的层次上选择不同的缓存,包括JVM缓存、文件缓存和Redis缓存。分布式缓存,采用主从+哨兵或RedisCluster的方式缓存数据库的数据。这里的文件缓存是基于http协议的文件缓存,一般放在nginx中。由此可见,在高并发的互联网系统中,缓存的命中率是至关重要的指标。原创 2023-05-18 21:15:17 · 11067 阅读 · 1 评论 -
《Redis面试宝典:揭秘大厂面试必问的高性能缓存问题!》
IO多路复⽤就是 通过⼀种机制实现监听多个描述符,⼀旦描述符就绪就会通知程序去执⾏相应的读写操作常⻅的有select、poll、epollRedis采用单线程多进程集群方案Redis是基于内存的操作,CPU不是Redis的瓶颈瓶颈最有可能是机器内存的大小或者网络带宽单线程的设计是最简单的但是对多核CPU利用率不够,所以Redis6采用多线程。代码更清晰,处理逻辑更简单不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。原创 2023-05-18 17:58:04 · 11148 阅读 · 0 评论 -
《Redis数据永不消逝:探究AOF和RDB持久化策略》
为了解决这个问题, Redis 增加了一个 AOF 重写缓存,这个缓存在 fork 出子进程之后开始启用,Redis 主进程在接到新的写命令之后,除了会将这个写命令的协议内容追加到现有的 AOF 文件之外,还会追加到这个缓存中。不过,使用子进程也有一个问题需要解决:因为子进程在进行 AOF 重写期间,主进程还需要继续处理命令,而新的命令可能对现有的数据进行修改,这会让当前数据库的数据和重写后的 AOF 文件中的数据不一致。Redis数据量存储过大,性能突然下降,fork 时间过长阻塞主进程则只开启AOF。原创 2023-05-18 17:30:42 · 10835 阅读 · 0 评论 -
《Redis魔法盒:掌握数据类型与应用场景,让你的分布式缓存飞起来!》
REDIS_STRING(字符串)、REDIS_LIST (列表)、REDIS_HASH(哈希)、REDIS_SET(集合)、REDIS_ZSET(有序集合)。1、hash表的数组初始容量为4,随着k-v存储量的增加需要对hash表数组进行扩容,新扩容量为当前量的一倍,即4,8,16,32。Redis没有表的概念,Redis实例所对应的db以编号区分,db本身就是key的命名空间。对于少的和小的数据,Redis采用小的和压缩的存储方式,体现Redis的灵活性。Redis整个数据库是用字典来存储的。原创 2023-05-18 16:40:55 · 10900 阅读 · 0 评论 -
《Redis缓存中的时间炸弹——缓存过期和淘汰策略》
当我们使用 expire命令设置一个key的失效时间时,Redis 首先到 dict 这个字典表中查找要设置的key 是否存在,如果存在就将这个key和失效时间添加到 expires 这个字典表。假设这时候缓存容量已经达到上限,必须先删除最近最少访问的数据,那么位于哈希链表最左端的用户1就会被删除掉,然后再把用户6插入到最右端。这时候,链表中最右端是最新访问到的用户4,最左端仍然是最近最少访问的用户1。2.此时,业务方访问用户5,由于哈希链表中没有用户5的数据,我们从数据库中读取出来,插入到缓存当中。原创 2023-05-18 16:29:22 · 10945 阅读 · 1 评论 -
《缓存背后的黑科技:揭秘Redis架构设计与高性能原理》
缓存原指CPU上的一种高速存储器,它先于内存与CPU交换数据,速度很快现在泛指存储在计算机上的原始数据的复制集,便于快速访问。在互联网技术中,缓存是系统快速响应的关键技术之一以空间换时间的一种技术(艺术)原创 2023-05-18 12:16:01 · 11337 阅读 · 0 评论