目录前言自定义注解定义限流类型生成key的工具类定义aop具体逻辑前言限流:使用Redisson的RRateLimiter进行限流多策略:map+函数式接口优化if判断限流:使用Redisson的RRateLimiter进行限流多策略:map+函数式接口优化if判断自定义注解/** * aop限流注解 */ @Target({ElementType ......
369
0
0
2023-03-01
目录前言一、引入依赖二、配置yml三、封装RedisTemplate四、controller使用RedisUtil五、操作演示前言为什么要配置序列化:如果不配置序列化的话,我们在redis数据库中存储的数据可能以乱码形式显示出来,不方便我们判断数据存储的正确性,说白了就是序列化以后存进去的是什么,查询出来的就是什么,否则我们的键值都会变成一串看不懂的乱码。为 ......
473
0
0
2023-02-28
目录1. Redis事件介绍2. 事件的抽象2.1 文件事件结构2.2 时间事件结构2.3 事件状态结构3. 事件的实现1. Redis事件介绍Redis服务器是一个事件驱动程序,所谓事件驱动就是输入一条命令并且按下回车,然后消息被组装成Redis协议的格式发送给Redis服务器,这个时候就会产生一个事件,Redis服务器会接收改命令,处理该命令和发送回复, ......
323
0
0
2023-02-23
目录Redis 网络连接库分析1. Redis网络连接库介绍2. 客户端的创建与释放2.1 客户端的创建2.2 客户端的释放3. 命令接收与命令回复3.1 命令接收3.2 命令回复4. CLIENT命令的实现Redis 网络连接库分析1. Redis网络连接库介绍Redis网络连接库对应的文件是networking.c,这个文件主要负责:客户端的创建与释放. ......
342
0
0
2023-02-23
目录1. 前言2. RDB2.1 手动触发2.2 自动触发3. bgsave大致流程4. RDB持久化方式的优缺点5. AOF6. AOF的使用方式7. AOF流程剖析7.1 命令写入7.2 文件同步7.3 重写机制7.4 重启加载8. 问题定位与优化8.1 关于fork操作8.2 关于子进程开销8.3 关于AOF追加阻塞1. 前言为什么要进行持久化?:持久 ......
297
0
0
2023-02-23
主从复制概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave已读为主 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制 ......
443
0
0
2023-02-19
目录引言一、环境准备二、构建Spring Boot项目三、引入Redis依赖四、Reds相关配置五、添加Redis配置类六、测试一下引言在日常的开发中,除了使用 Spring Boot 这个企业级快速构建项目的框架之外,随着业务数据量的大幅度增加,对元数据库造成的压力成倍剧增。在此背景下, Redis 这个 NoSQL 数据库已 ......
311
0
0
2023-02-15
Redis 是一个key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sort ......
337
0
0
2023-02-12
目录为什么要限流限流背景实现限流1、引入依赖2、自定义限流注解3、限流切面4、写一个简单的接口进行测试5、全局异常拦截6、接口测试为什么要限流系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可用。为了避免这种情况,我们就需要对接口请求进行限流。所以,我们可以通过对并发访问请求进行限 ......
308
0
0
2023-02-08
目录一、redis发布订阅简介二、几个核心概念解释三、适用场景四、与springboot的整合1、导入基础依赖2、配置文件3、自定义RedisSubConfig4、自定义消息监听器5、redistemplate的序列化6、功能测试一、redis发布订阅简介Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收信 ......
416
0
0
2023-02-05
目录过期删除策略设置Redis中key的过期时间 (单位:秒)常见的三种过期删除策略Redis使用用的过期删除策略Redis的定期删除的流程内存淘汰策略设置Redis最大运行内存Redis 内存淘汰策略有哪些?LRU 算法和 LFU 算法有什么区别?Redis 是如何实现 LRU 算法的?什么是 LFU 算法?Redis 是如何实现 LFU 算法的?过期删除 ......
388
0
0
2023-02-02
目录一、业务背景二、分析流程加锁超时问题解决方案:增加一个「续时」三、设计方案四、实操相关属性类配置核心切面拦截的操作五、开始测试六、总结一、业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。二、分析流程使用 Redis 作为分布式锁,将锁的状态放到 Re ......
282
0
0
2023-01-31
搬运,redis做消息队列的几种方法和优缺点从最简单的开始:List 队列首先,我们先从最简单的场景开始讲起。如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 List 这个数据类型。因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。如果把 List ......
378
0
0
2023-01-24
前言前几天我在知乎看到一个问题:如何建立自己的知识体系和观点?^1^如何建立自己的知识体系和观点?在一篇高赞回答中讲述了建立“外脑”是关键,文章观点认为:大脑是用来思考的,不是用来记忆的。查理芒格我很认同这样的看法,我的账号名为“杨同学technotes”,technotes^2^ 源于我最近几年总结的 github 项目,意为“技术笔记”,这便是我的“外脑 ......
307
0
0
2023-01-14
作者:贲绍华爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、集群架构的一些基本概念当我们只使用一台 Redis 实例也就是 Single 架构时,需要考虑一些非常实际的问题,如:单节点一但宕机则业务停摆、单节点的容量不可能是无限制的、性能 ......
369
0
0
2023-01-08