Redis 7.x
文章平均质量分 95
基于最新的Redis 7,包含基础、高阶、实战、面试、考试篇,致力做到最新、最全、最细、最好。
墨 禹
一个追求有道有术的非典型程序员
展开
-
Redis 7.x 系列【1】产品介绍
Redis的全称为Remote Dictionary Server ,即远程字典服务。使用ANSI C语言编写,是一个开源、基于内存、可持久化、分布式、高性能的Key-Value数据结构服务器,并提供了多种语言的API。原创 2024-06-14 11:37:23 · 1170 阅读 · 0 评论 -
Redis 7.x 系列【2】单机部署
Redis作为一个高性能的内存数据库,和Linux的适配度最高,Windows并不适合安装,仅适用于本地开发环境。生产环境需要在Linux中部署,否则可能会造成兼容性问题,或者性能不佳。原创 2024-06-14 11:38:32 · 548 阅读 · 0 评论 -
Redis 7.x 系列【3】多种连接方式
在上篇文档中已经部署好了 Redis ,接下来学习如何连接到 Redis 。原创 2024-06-17 10:19:17 · 1287 阅读 · 0 评论 -
Redis 7.x 系列【4】命令手册
Redis 命令用于在服务器上执行操作,相当于数据库的 SQL ,其重要性不言而喻。对于开发人员来说,很少使用这些命令直接操作,一般都是通过客户端API进行调用,但是需要掌握一些重要的命令。原创 2024-06-17 10:20:45 · 1017 阅读 · 0 评论 -
Redis 7.x 系列【5】基础命令
Redis 作为 KV 型数据库,基础命令则主要包含了针对 Key 的相关操作,7.x 版本包含的所有命令如下所示。原创 2024-06-25 20:06:46 · 817 阅读 · 0 评论 -
Redis 7.x 系列【6】数据类型之字符串(String)
在 Redis 中, String 类型是最基本的数据类型,是二进制安全的,可以存储任意类型的数据,文本、数字、图片或者序列化的对象 。原创 2024-06-25 20:07:20 · 985 阅读 · 0 评论 -
Redis 7.x 系列【7】数据类型之列表(List)
Redis List(列表)是一种基于双向链表的数据结构,允许包含重复的元素,支持在列表的头部和尾部添加或删除元素。原创 2024-06-26 09:09:57 · 1067 阅读 · 0 评论 -
Redis 7.x 系列【8】数据类型之哈希(Hash)
Redis Hash 是一个键值对集合,是一个 string 类型的 field(字段) 和 value(值) 的映射表,类似 Java 里面中的 Map,特别适合用于存储对象。原创 2024-06-26 09:10:20 · 1002 阅读 · 0 评论 -
Redis 7.x 系列【9】数据类型之自动排重集合(Set)
Redis Set数据类型是一种无序集合,它不允许重复的元素,可以类比Java中的HashSet。原创 2024-06-27 13:41:19 · 827 阅读 · 0 评论 -
Redis 7.x 系列【10】数据类型之有序集合(ZSet)
ZSet是一种有序集合类型,可以存储不重复的元素,并且给每个元素赋予一个double类型的排序权重值。原创 2024-06-27 13:44:50 · 1448 阅读 · 0 评论 -
Redis 7.x 系列【11】数据类型之位图(Bitmap)
Redis Bitmap 实际不是一个独立的数据类型,而是基于 String 类型实现的。它主要用于存储二值状态(即集合元素的取值只有 0 和 1 两种)。由于每个位只能表示两种状态,在需要快速进行大量数据的排序、查找、去重等操作时具有显著优势。Bitmap 实际上是利用 String 类型的最大容量(512 MB)存储一个连续的二进制序列。每个字节的 8 位可以分别代表 8 个独立的状态,因此可以用一个 Bitmap 来跟踪多达数百万甚至数十亿的状态。原创 2024-06-28 10:15:12 · 1313 阅读 · 0 评论 -
Redis 7.x 系列【12】数据类型之基数统计(HyperLogLog)
基数表示数据集中不重复元素的个数。例如 {1,2,2,3,4,5,5}中,基数集(不重复的元素)为 {1,2,3,4,5},那么该数据集的基数(不重复元素的个数)为5。Redis 2.8.9 版本引入了 HyperLogLog 用于基数统计的算法,用于估算一个集合中不同元素的数量(基数),在处理大量数据时具有显著的空间效率优势。原创 2024-06-28 10:17:05 · 1085 阅读 · 0 评论 -
Redis 7.x 系列【13】数据类型之地理位置(Geospatial)
Geospatial 简称GEO,翻译过来是地理空间的意思,是 Redis 3.2 版本新增一种数据类型,底层的索引结构是 ZSet。主要用于存储地理位置信息,并对存储的信息进行操作。原创 2024-07-01 09:12:47 · 957 阅读 · 0 评论 -
Redis 7.x 系列【14】数据类型之流(Stream)
消息队列:是指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递,生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由服务端给其推送消息。原创 2024-07-01 09:16:10 · 1241 阅读 · 0 评论 -
Redis 7.x 系列【15】持久化机制之 RDB
Redis 的数据都在内存中,一旦服务器宕机或者重启,所有的数据都将丢失。Redis 提供了持久化机制,将内存数据进行磁盘持久化保存,以便重启时重新加载数据到内存中。原创 2024-07-03 09:56:39 · 1029 阅读 · 0 评论 -
Redis 7.x 系列【16】持久化机制之 AOF
Append Only File(AOF)是另一种持久化模式,它提供了更好的持久性保证。AOF以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据。换言之,重启的话就根据日志文件的内容,将写指令从前到后执行一次以完成数据的恢复工作。原创 2024-07-03 09:58:27 · 1402 阅读 · 0 评论 -
Redis 7.x 系列【17】四种持久化策略
持久化官方文档在前两篇文档中,我们学习了RDBAOF的相关知识,它们各有优缺点。在实际应用中,需要根据场景选择适合的持久化策略。原创 2024-07-04 17:38:06 · 904 阅读 · 5 评论 -
Redis 7.x 系列【18】事务
Redis事务:允许在单个步骤中执行一组命令,其核心命令包括MULTIEXECDISCARD和WATCH。Redis所有事务中的命令都是串行化执行的,按顺序逐一执行。在事务执行过程中,不会在命令执行的中间阶段响应其他客户端的请求,这确保了命令作为单个隔离操作执行。EXEC命令触发事务中所有命令的执行:如果客户端在调用EXEC命令之前在事务上下文中失去了与服务器的连接,那么所有操作都不会执行。一旦调用EXEC命令,所有操作将被执行。在使用AOF时,确保使用单个系统调用将事务写入磁盘。原创 2024-07-04 17:38:41 · 1073 阅读 · 0 评论 -
Redis 7.x 系列【19】管道
允许客户端将多个命令一次性发送给服务器,而不需要等待每个命令的回复。这样可以减少每条命令的网络延迟时间,特别适合需要发送大量命令并获取结果的场景。原创 2024-07-05 14:56:57 · 1082 阅读 · 0 评论 -
Redis 7.x 系列【20】发布订阅
Pub/Sub 发布/订阅是一种常见的消息传递模式,消息的发送方将消息发布到某个特定的频道或主题,同时,消息的接收方可以订阅一个或多个频道或主题,以接收并处理发布的消息。原创 2024-07-05 15:04:17 · 894 阅读 · 0 评论 -
Redis 7.x 系列【21】主从复制
主从复制是一种常见的数据库复制技术,用于实现数据备份、读写分离和高可用。Redis也支持主从复制,可以将一个Redis服务器的数据复制到多个其他Redis,从服务器(Slave)保持与主服务器(Master)相同的数据副本。主节点Master):负责接收客户端的写操作,并将其同步到从节点。从节点Slave):只能接收读操作请求,不能进行写操作。从节点会复制主节点的数据,并保持与主节点的数据同步。原创 2024-07-09 15:14:37 · 1398 阅读 · 0 评论 -
Redis 7.x 系列【22】主从复制配置项
redis.conf 配置文件中,提供了很多个主从复制的配置项(在从节点中配置):原创 2024-07-09 15:15:42 · 1269 阅读 · 0 评论 -
Redis 7.x 系列【23】哨兵模式
Redis 提供了基于哨兵(Sentinel)的高可用解决方案,Sentinel是一个运行在特殊模式下的 Redis 服务端,本身不存储任何数据,而是作为主从复制模式下的监控和管理工具。当主节点出现故障时,可以提供自动故障转移功能,从而保证 Redis 服务的连续性和稳定性。原创 2024-07-11 10:01:18 · 880 阅读 · 0 评论 -
Redis 7.x 系列【24】哨兵模式配置项
在解压的源码文件中,可以看到哨兵的配置文件 sentinel.conf :原创 2024-07-11 13:33:22 · 884 阅读 · 0 评论 -
Redis 7.x 系列【25】集群部署
Redis 3.0 提供了分布式的高可用解决方案 ( Redis Cluster ),通过数据分片的方式,将数据分散存储在多个服务器节点,以支持更大的数据量和更高的并发请求。同时,集群能够自动进行数据的重新分配和故障恢复,保证整个集群的可用性和稳定性。原创 2024-07-22 15:27:05 · 1664 阅读 · 0 评论 -
Redis 7.x 系列【26】集群模式动态扩容、动态缩容
Redis 集群支持动态增加节点实现扩容,提高集群容量和数据处理能力,接下来演示将之前三主三从扩容为四主四从。Redis 集群支持动态删除节点实现缩容,从集群中移除节点,将分配给该节点的哈希槽移动到其他现有节点上。接下来演示将上面的四主四从恢复为三主三从。原创 2024-07-22 15:46:08 · 1201 阅读 · 0 评论 -
Redis 7.x 系列【27】集群原理之通信机制
在 Redis 集群中,节点负责存储数据,并管理集群的状态,包括将键映射到正确的节点。集群节点还能够自动发现其他节点,检测非工作节点,并在需要时提升副本节点为主节点,以便在发生故障时继续运行。节点和节点之间,节点和客户端之间,都需要高效安全的通信机制,确保整个集群能如期正常运行。原创 2024-07-23 08:55:57 · 1067 阅读 · 0 评论 -
Redis 7.x 系列【28】集群原理之数据分片
数据分片(Data Sharding)技术,通过将数据分散存储到多个物理节点上,来减轻单一节点的负载压力,避免单点故障,同时也提高了整个系统的性能和容错能力,以及安全性和可靠性。原创 2024-07-23 08:56:35 · 1263 阅读 · 0 评论 -
Redis 7.x 系列【29】集群原理之自动故障转移
当 Redis 集群的某些节点出现故障时,可以自动进行故障转移,地将从节点提升为主节点,保证服务的连续性和数据的可用性。原创 2024-07-24 09:32:53 · 1211 阅读 · 1 评论 -
Redis 7.x 系列【30】集群管理命令
集群管理命令是用于管理和维护 Redis 集群,允许用户执行如查看集群信息、添加或删除节点、重新分片等操作。原创 2024-07-24 09:33:51 · 919 阅读 · 0 评论 -
Redis 7.x 系列【31】LUA 脚本
Lua 语言是一种小巧的、高效的、可嵌入的脚本编程语言,由巴西里约热内卢天主教大学的一个研究小组于 1993 年开发。设计目的是为了通过灵活嵌入应用程序中,为应用程序提供灵活的扩展和定制功能。Redis 2.6 版本开始支持用户在服务器上传和执行 Lua 脚本,从而实现复杂的操作逻辑。脚本在 Redis 中是以字符串的形式传递给服务器的,然后服务器会执行这些脚本并返回结果。脚本在 Redis 中由内置的执行引擎执行。目前,仅支持一个脚本引擎,即 Lua 5.1 解释器。原创 2024-07-26 17:37:22 · 1108 阅读 · 0 评论 -
Redis 7.x 系列【32】函数(Redis Functions)
Redis v7.0 引入了 Redis Functions (函数),是一种基于脚本的优化方案,提供与脚本相同的核心功能。通过持久化和复制保证可用性,不依赖于客户端,允许通过服务端加载自定义的函数库,并且会进行主从复制和持久化存储。支持多种语言,目前仅支持 LUA ,后续计划支持 JavaScript、Python 等。原创 2024-07-26 17:37:52 · 808 阅读 · 0 评论 -
Redis 7.x 系列【33】布隆过滤器(Bloom Filter)
在需要判断某个元素是否在集合中时,可以使用链表、散列表将所有元素保存起来,然后通过比较进行判断。但是随着集合中元素的增加,需要的存储空间也会呈现线性增长,最终达到瓶颈,同时检索速度也越来越慢。1970 年,Howard Bloom 提供出了布隆过滤器(Bloom Filter),是一种概率性数据结构,主要用于检测一个元素是否属于某个集合。原创 2024-07-29 09:28:04 · 1248 阅读 · 0 评论 -
Redis 7.x 系列【34】Spring Boot 集成
直接集成客户端,需要我们自己维护连接配置,获取客户端连接,再执行操作,最后还需要释放资源。Spring 提供了 Spring Data Redis 和 Spring Boot Data Redis Starter ,在 Spring Boot 环境中,可以很方便的连接并操作 Redis。原创 2024-07-30 09:47:55 · 665 阅读 · 0 评论 -
Redis 7.x 系列【35】内存管理
支持配置 Redis 服务器能够使用的最大内存量,确保 Redis 使用内存不会无限制增长,从而消耗掉整个系统的所有可用内存,导致系统不稳定或崩溃。原创 2024-08-06 13:16:04 · 780 阅读 · 0 评论 -
Redis 7.x 系列【36】访问控制表(ACL)
认证和访问控制是实现网络安全的重要措施,Redis 6 引入了ACL(Access Control List)访问控制列表功能,允许限制连接可以执行的命令和可以访问的键。原创 2024-08-06 13:20:28 · 1353 阅读 · 0 评论 -
Redis 7.x 系列【37】旁路缓存模式
缓存技术(Cache)通过将热点数据临时存储在查询速度更快的位置,从而提高了系统的响应速度和性能。计算机硬件、软件都大量使用了缓存技术,例如 CPU 中三级缓存,作为 CPU 与内存之间临时数据交换区, CPU 会将热点、相同的重复执行指令等数据放入到高速缓存中, CPU 直接从缓存中获取指令、数据,从而提高了整机的响应速度。原创 2024-08-07 14:51:57 · 1291 阅读 · 0 评论 -
Redis 7.x 系列【38】缓存预热、缓存雪崩、缓存穿透、缓存击穿
缓存预热是指在服务启动或者流量高峰期之前,提前将数据加载到缓存中。避免因为缓存事先没有数据,大量请求直接落入到数据库中。原创 2024-08-07 14:52:31 · 792 阅读 · 0 评论