2025年10月13日
Redis当中除了之前介绍的事务,持久化等高级特性之外,还提供了发布与订阅,Lua脚本,事件机制等高级特性,本文会继续介绍Redis的另外两大高级特性:
2025年10月13日
这期探索Redis中list数据结构相关命令。list 是一系列有序值。一些与list 交互的重要的命令是RPUSH,LPUSH,LLEN,LRANGE,LPOP和RPOP
1 LPUSH key element [element ...]
将要存储的值从key对应的列表数据结构头部放进去。如果key不存在,则在执行推送操作之前将其创建为空列表。当key保存的值不是列表时,将返回错误。当保存成功,返回的是存储的个数。
2025年10月13日
在分布式系统中,多个服务节点需要协同工作,而共享资源的并发访问控制是绕不开的话题。Redis 凭借其高性能和原子性操作特性,成为实现分布式锁的热门选择。本文将基于你的学习笔记,深入解析 Redis 分布式锁的核心原理、原子性保障及实现逻辑,帮你构建更完整的知识体系。
在单体应用中,我们可以用synchronized或ReentrantLock等本地锁解决并发问题。但在分布式架构下,服务部署在多个节点,本地锁只能控制单个 JVM 内的线程,无法阻止其他节点对共享资源的访问。例如:
2025年10月13日
在分布式系统中,Redis作为高性能的缓存和数据存储解决方案被广泛应用。当使用SpringBoot框架整合Redis时,序列化策略的选择直接影响到系统的性能、兼容性和可维护性。
序列化是将Java对象转换为可在网络上传输或存储在磁盘上的过程,反序列化则是将这些数据重新转换为Java对象。
合适的序列化策略能够带来以下好处:
2025年10月13日
上一篇文章教大家手动搭建了一个Cluster集群,并演示了故障转移的过程,本文接着讲Cluster集群的动态扩展,简单来讲就是如何在Cluster模式下实现节点的新增和废弃节点的删除以及如何重新分配slot来达到集群的高可用,实现集群的动态扩展,而这一切都基于redis-trib.rb脚本,首先,我们对redis-trib.rb的命令开始说起:
本文分两部分:1,redis-trib.rb
2025年10月13日
熟悉Redis的人都知道,它是单线程的。因此在使用一些时间复杂度为O(N)的命令时要非常谨慎。可能一不小心就会阻塞进程,导致Redis出现卡顿。
有时,我们需要针对符合条件的一部分命令进行操作,比如删除以test_开头的key。那么怎么获取到这些key呢?在Redis2.8版本之前,我们可以使用keys命令按照正则匹配得到我们需要的key。但是这个命令有两个缺点:
2025年10月13日
大家有没有发现一个问题,新项目刚上线时跑得可快了,自己点点还挺得意。可时间一长,用户一多,网页就开始转圈,查个数据库比乌龟还慢。
这时候,可别急着把锅都甩给数据库。这是因为架构里少了一个提速的好帮手,那就是Redis。