![](https://img-blog.csdnimg.cn/direct/f630b2ecd1cd4c37b536735e0e12db11.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis 7.x
文章平均质量分 94
基于最新的Redis 7,包含基础、高阶、实战、面试、考试篇,致力做到最新、最全、最细、最好。
云烟成雨TD
一个追求有道有术的非典型程序员
展开
-
Redis 7.x 系列【1】产品介绍
Redis的全称为Remote Dictionary Server ,即远程字典服务。使用ANSI C语言编写,是一个开源、基于内存、可持久化、分布式、高性能的Key-Value数据结构服务器,并提供了多种语言的API。原创 2024-06-14 11:37:23 · 1014 阅读 · 0 评论 -
Redis 7.x 系列【2】单机部署
Redis作为一个高性能的内存数据库,和Linux的适配度最高,Windows并不适合安装,仅适用于本地开发环境。生产环境需要在Linux中部署,否则可能会造成兼容性问题,或者性能不佳。原创 2024-06-14 11:38:32 · 425 阅读 · 0 评论 -
Redis 7.x 系列【3】多种连接方式
在上篇文档中已经部署好了 Redis ,接下来学习如何连接到 Redis 。原创 2024-06-17 10:19:17 · 922 阅读 · 0 评论 -
Redis 7.x 系列【4】命令手册
Redis 命令用于在服务器上执行操作,相当于数据库的 SQL ,其重要性不言而喻。对于开发人员来说,很少使用这些命令直接操作,一般都是通过客户端API进行调用,但是需要掌握一些重要的命令。原创 2024-06-17 10:20:45 · 878 阅读 · 0 评论 -
Redis 7.x 系列【5】基础命令
Redis 作为 KV 型数据库,基础命令则主要包含了针对 Key 的相关操作,7.x 版本包含的所有命令如下所示。原创 2024-06-25 20:06:46 · 702 阅读 · 0 评论 -
Redis 7.x 系列【6】数据类型之字符串(String)
在 Redis 中, String 类型是最基本的数据类型,是二进制安全的,可以存储任意类型的数据,文本、数字、图片或者序列化的对象 。原创 2024-06-25 20:07:20 · 850 阅读 · 0 评论 -
Redis 7.x 系列【7】数据类型之列表(List)
Redis List(列表)是一种基于双向链表的数据结构,允许包含重复的元素,支持在列表的头部和尾部添加或删除元素。原创 2024-06-26 09:09:57 · 981 阅读 · 0 评论 -
Redis 7.x 系列【8】数据类型之哈希(Hash)
Redis Hash 是一个键值对集合,是一个 string 类型的 field(字段) 和 value(值) 的映射表,类似 Java 里面中的 Map,特别适合用于存储对象。原创 2024-06-26 09:10:20 · 895 阅读 · 0 评论 -
Redis 7.x 系列【9】数据类型之自动排重集合(Set)
Redis Set数据类型是一种无序集合,它不允许重复的元素,可以类比Java中的HashSet。原创 2024-06-27 13:41:19 · 741 阅读 · 0 评论 -
Redis 7.x 系列【10】数据类型之有序集合(ZSet)
ZSet是一种有序集合类型,可以存储不重复的元素,并且给每个元素赋予一个double类型的排序权重值。原创 2024-06-27 13:44:50 · 1296 阅读 · 0 评论 -
Redis 7.x 系列【11】数据类型之位图(Bitmap)
Redis Bitmap 实际不是一个独立的数据类型,而是基于 String 类型实现的。它主要用于存储二值状态(即集合元素的取值只有 0 和 1 两种)。由于每个位只能表示两种状态,在需要快速进行大量数据的排序、查找、去重等操作时具有显著优势。Bitmap 实际上是利用 String 类型的最大容量(512 MB)存储一个连续的二进制序列。每个字节的 8 位可以分别代表 8 个独立的状态,因此可以用一个 Bitmap 来跟踪多达数百万甚至数十亿的状态。原创 2024-06-28 10:15:12 · 1181 阅读 · 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 · 1005 阅读 · 0 评论 -
Redis 7.x 系列【13】数据类型之地理位置(Geospatial)
Geospatial 简称GEO,翻译过来是地理空间的意思,是 Redis 3.2 版本新增一种数据类型,底层的索引结构是 ZSet。主要用于存储地理位置信息,并对存储的信息进行操作。原创 2024-07-01 09:12:47 · 673 阅读 · 0 评论 -
Redis 7.x 系列【14】数据类型之流(Stream)
消息队列:是指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递,生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由服务端给其推送消息。原创 2024-07-01 09:16:10 · 1057 阅读 · 0 评论 -
Redis 7.x 系列【15】持久化机制之 RDB
Redis 的数据都在内存中,一旦服务器宕机或者重启,所有的数据都将丢失。Redis 提供了持久化机制,将内存数据进行磁盘持久化保存,以便重启时重新加载数据到内存中。原创 2024-07-03 09:56:39 · 869 阅读 · 0 评论 -
Redis 7.x 系列【16】持久化机制之 AOF
Append Only File(AOF)是另一种持久化模式,它提供了更好的持久性保证。AOF以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据。换言之,重启的话就根据日志文件的内容,将写指令从前到后执行一次以完成数据的恢复工作。原创 2024-07-03 09:58:27 · 1098 阅读 · 0 评论 -
Redis 7.x 系列【17】四种持久化策略
持久化官方文档在前两篇文档中,我们学习了RDBAOF的相关知识,它们各有优缺点。在实际应用中,需要根据场景选择适合的持久化策略。原创 2024-07-04 17:38:06 · 744 阅读 · 0 评论 -
Redis 7.x 系列【18】事务
Redis事务:允许在单个步骤中执行一组命令,其核心命令包括MULTIEXECDISCARD和WATCH。Redis所有事务中的命令都是串行化执行的,按顺序逐一执行。在事务执行过程中,不会在命令执行的中间阶段响应其他客户端的请求,这确保了命令作为单个隔离操作执行。EXEC命令触发事务中所有命令的执行:如果客户端在调用EXEC命令之前在事务上下文中失去了与服务器的连接,那么所有操作都不会执行。一旦调用EXEC命令,所有操作将被执行。在使用AOF时,确保使用单个系统调用将事务写入磁盘。原创 2024-07-04 17:38:41 · 951 阅读 · 0 评论 -
Redis 7.x 系列【19】管道
允许客户端将多个命令一次性发送给服务器,而不需要等待每个命令的回复。这样可以减少每条命令的网络延迟时间,特别适合需要发送大量命令并获取结果的场景。原创 2024-07-05 14:56:57 · 970 阅读 · 0 评论 -
Redis 7.x 系列【20】发布订阅
Pub/Sub 发布/订阅是一种常见的消息传递模式,消息的发送方将消息发布到某个特定的频道或主题,同时,消息的接收方可以订阅一个或多个频道或主题,以接收并处理发布的消息。原创 2024-07-05 15:04:17 · 760 阅读 · 0 评论 -
Redis 7.x 系列【21】主从复制
主从复制是一种常见的数据库复制技术,用于实现数据备份、读写分离和高可用。Redis也支持主从复制,可以将一个Redis服务器的数据复制到多个其他Redis,从服务器(Slave)保持与主服务器(Master)相同的数据副本。主节点Master):负责接收客户端的写操作,并将其同步到从节点。从节点Slave):只能接收读操作请求,不能进行写操作。从节点会复制主节点的数据,并保持与主节点的数据同步。原创 2024-07-09 15:14:37 · 839 阅读 · 0 评论 -
Redis 7.x 系列【22】主从复制配置项
redis.conf 配置文件中,提供了很多个主从复制的配置项(在从节点中配置):原创 2024-07-09 15:15:42 · 926 阅读 · 0 评论 -
Redis6.0系列(18)-Redis之面试常问缓存穿透+缓存击穿+缓存雪崩
缓存穿透问题描述一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去数据库查询。一些恶意的请求会故意大量查询不存在的key,就会对数据库造成很大的压力。这就叫做缓存穿透。比如用一个不存在的商品id获取商品详情,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。伪代码演示: @Autowired RedisTemplate<String, Object> redisTemplate; /** * 模拟缓存穿透=原创 2021-05-17 11:45:57 · 474 阅读 · 0 评论 -
Redis6.0系列(17)-Redis之LUA脚本及RedisTemplate执行脚本案例源码分析
Lua是什么Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大原创 2021-05-16 00:28:32 · 1479 阅读 · 1 评论 -
Redis6.0系列(16)-RedisTemplate操作Redis之API详解
StringRedisTemplate由于存储在Redis中的键和值非常普遍java.lang.String,因此Redis模块提供了RedisConnection和的两个扩展RedisTemplate,分别是StringRedisConnection(及其DefaultStringRedisConnection实现),并且StringRedisTemplate是用于密集型String操作的便捷的一站式解决方案。除了绑定到String键之外,模板和连接还使用StringRedisSerializer下方,原创 2021-05-15 01:15:44 · 1394 阅读 · 1 评论 -
Redis6.0系列(15)-RedisTemplate操作Redis详解之连接Redis及自定义序列化
连接到Redis使用Redis和Spring时的首要任务之一是通过IoC容器连接到Redis。为此,需要Java连接器(或绑定)。无论选择哪种库,您都只需要使用一组Spring Data Redis API(在所有连接器中行为一致):org.springframework.data.redis.connection软件包及其RedisConnection与RedisConnectionFactory接口,用于处理和检索与Redis的活动连接。RedisConnection和RedisConnection原创 2021-05-14 19:45:38 · 1749 阅读 · 4 评论 -
Redis6.0系列(14)-Spring Boot集成Redis环境搭建及配置详解
@@@原创 2021-05-14 15:20:09 · 3070 阅读 · 0 评论 -
Redis6.0系列(13)-Redis6新特性
新特性ACL用户权限控制功能IO多线程支持工具支持 ClusterRESP3:新的 Redis 通信协议Client side caching客户端缓存Proxy集群代理模式Modules API新的 Expire 算法SSL支持新的RESP3协议副本的无盘复制redis-benchmark支持和redis-cli改进Systemd 支持重写disque模块的发布ACLRedis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执原创 2021-05-13 23:11:38 · 403 阅读 · 0 评论 -
Redis6.0系列(12)-Redis集群搭建
集群模式概念主从复制和哨兵模式一定程度上能解决高可用问题,但是也存在问题,比如容量不够,redis如何进行扩容?并发写操作, redis如何分摊?redis3.0中提供了解决方案,就是无中心化集群配置。集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用,可以归纳一下几点点:1、数原创 2021-05-13 17:02:03 · 354 阅读 · 0 评论 -
Redis6.0系列(11)-Redis之哨兵模式(sentinel)详解
哨兵模式简介Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化,哨兵基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器原创 2021-05-13 14:01:11 · 1741 阅读 · 2 评论 -
Redis6.0系列(8)-Redis发布订阅及Spring Boot集成Redis实现发布订阅消息
发布订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。客户端可以订阅频道如下图:当给这个频道发布消息后,消息就会发送给订阅的客户端:命令行实现SUBSCRIBE channel [channel …]:订阅给指定频道的信息。一旦客户端进入订阅状态,客户端就只可接受订阅相关的命令SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE和PUNSUBSCRIBE除了这些命原创 2021-05-12 17:25:15 · 2632 阅读 · 0 评论