目录前言互斥锁TryLock和Unlock实现Lock实现实现看门狗机制看门狗实现红锁加锁实现看门狗实现解锁实现前言在项目中我们经常有需要使用分布式锁的场景,而Redis是实现分布式锁最常见的一种方式,这篇文章主要是使用Go+Redis实现互斥锁和红锁。下面的代码使用go-redis客户端和gofakeit库。代码地址互斥锁Redis里有一个设置如果不存在的
......
332
0
0
2023-03-10
目录前言基本使用内部数据结构介绍基本流程发送延时消息获取延时消息初始化延时队列总结前言因为工作中需要用到分布式的延时队列,调研了一段时间,选择使用 RedissonDelayedQueue,为了搞清楚内部运行流程,特记录下来。总体流程大概是图中的这个样子,初看一眼有点不知从何下手,接下来我会通过以下几点来分析流程,相信看完本文你能了解整个运行流程。基本使用内
......
440
0
0
2023-03-09
目录单点登录 SSO(Single Sign On)什么是单点登录?实现方式开发技术单点登录实现流程实现案例看效果前言:由于考虑到cookie的安全性问题,就有了下面这个版本的sso单点登录 SSO(Single Sign On)什么是单点登录?单点登录的英文名叫做:Single Sign On(简称SSO),指在同一帐号平台下的多个应用系统中,用户只需登录
......
439
0
0
2023-03-03
前言一直没机会做spring生态圈的框架,公司选择的是一些小众的微服务,鉴于此考虑,丰富自己的技术栈,花了两天时间从网上各网站上学习了springboot一些基础知识。 本章只介绍springboot微服务集成redis,用于存放或访问项目中用到的缓存数据库。环境准备IntelliJ IDEA前一章中搭建的微服务框架开始集成pom.xml中增加依赖包<
......
492
0
0
2023-03-03
目录前言自定义注解定义限流类型生成key的工具类定义aop具体逻辑前言限流:使用Redisson的RRateLimiter进行限流多策略:map+函数式接口优化if判断限流:使用Redisson的RRateLimiter进行限流多策略:map+函数式接口优化if判断自定义注解/**
* aop限流注解
*/
@Target({ElementType
......
400
0
0
2023-03-01
目录前言一、引入依赖二、配置yml三、封装RedisTemplate四、controller使用RedisUtil五、操作演示前言为什么要配置序列化:如果不配置序列化的话,我们在redis数据库中存储的数据可能以乱码形式显示出来,不方便我们判断数据存储的正确性,说白了就是序列化以后存进去的是什么,查询出来的就是什么,否则我们的键值都会变成一串看不懂的乱码。为
......
511
0
0
2023-02-28
目录1. Redis事件介绍2. 事件的抽象2.1 文件事件结构2.2 时间事件结构2.3 事件状态结构3. 事件的实现1. Redis事件介绍Redis服务器是一个事件驱动程序,所谓事件驱动就是输入一条命令并且按下回车,然后消息被组装成Redis协议的格式发送给Redis服务器,这个时候就会产生一个事件,Redis服务器会接收改命令,处理该命令和发送回复,
......
357
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,这个文件主要负责:客户端的创建与释放.
......
376
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. 前言为什么要进行持久化?:持久
......
330
0
0
2023-02-23
主从复制概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave已读为主 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制
......
502
0
0
2023-02-19
目录引言一、环境准备二、构建Spring Boot项目三、引入Redis依赖四、Reds相关配置五、添加Redis配置类六、测试一下引言在日常的开发中,除了使用 Spring Boot 这个企业级快速构建项目的框架之外,随着业务数据量的大幅度增加,对元数据库造成的压力成倍剧增。在此背景下, Redis 这个 NoSQL 数据库已
......
338
0
0
2023-02-15
Redis 是一个key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sort
......
372
0
0
2023-02-12
目录为什么要限流限流背景实现限流1、引入依赖2、自定义限流注解3、限流切面4、写一个简单的接口进行测试5、全局异常拦截6、接口测试为什么要限流系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可用。为了避免这种情况,我们就需要对接口请求进行限流。所以,我们可以通过对并发访问请求进行限
......
344
0
0
2023-02-08
目录一、redis发布订阅简介二、几个核心概念解释三、适用场景四、与springboot的整合1、导入基础依赖2、配置文件3、自定义RedisSubConfig4、自定义消息监听器5、redistemplate的序列化6、功能测试一、redis发布订阅简介Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收信
......
491
0
0
2023-02-05
目录过期删除策略设置Redis中key的过期时间 (单位:秒)常见的三种过期删除策略Redis使用用的过期删除策略Redis的定期删除的流程内存淘汰策略设置Redis最大运行内存Redis 内存淘汰策略有哪些?LRU 算法和 LFU 算法有什么区别?Redis 是如何实现 LRU 算法的?什么是 LFU 算法?Redis 是如何实现 LFU 算法的?过期删除
......
424
0
0
2023-02-02