Redis实现分布式限流的几种方法
目录1. 固定窗口计数算法示例代码2. 滑动窗口计数算法示例代码3. 令牌桶算法示例代码4. 令牌桶算法与Lua脚本Lua脚本Java代码使用Redis实现分布式限流是一种常见且有效的方法,可以防止系统过载并确保公平的资源分配。Redis的高性能和丰富的数据结构使其成为实现分布式限流的理想选择。常见的限流算法包括固定窗口计数、滑动 ...
Redis的主从同步问题的一些解决方法
目录1. 配置主从复制1.1 配置主服务器1.2 配置从服务器1.3 动态设置从服务器2. 解决主从同步延迟问题2.1 调整复制缓冲区大小2.2 调整复制积压缓冲区大小2.3 配置延迟监控3. 处理主从切换问题3.1 配置Redis Sentinel3.2 启动Redis Sentinel4. 处理全量复制和增量复制问题4.1 增加全量复制的性能4.2 优化增量复制5. 处理网络 ...
基于Redis实现登录功能思路详解(手机号+验证码)
目录UserServiceImpl实现类sendCode方法login方法createUserWithPhone方法拦截器preHandle方法整体思路优化RefreshTokenInterceptorLoginInterceptor配置类本文使用的是 手机号+验证码 的登录方式,其中验证码是通过在控制台输出,并没有真的发送到手机上(太麻烦,主要目的还是学习使用Redis)
重点是看思路,而不是 ...
Redis热点Key独立集群实现方案(核心思路)
目录Redis热点Key独立集群实现方案1. 设计背景2. 实现方案2.1 核心设计思路2.2 配置扩展2.3 Redis客户端配置扩展2.4 统一Redis服务封装2.5 使用示例3. 方案优势3.1 资源隔离3.2 灵活扩展3.3 高可用性3.4 统一访问接口3.5 易于维护4. 部署架构5. 注意事项6. 扩展建议Redis热点Key独立集群实现方案
1. 设计背景
在高并发场景 ...
Redis中ziplist与quicklist解析与对比小结
目录一、背景 — 为什么要有多种“列表(List)”编码二、ziplist —— 压缩列表(compact list)2.1 ziplist 是什么2.2 ziplist 的适用条件(默认策略)2.3 ziplist 的优点与缺点三、quicklist —— 快速列表(QuickList)3.1 quicklist 是什么3.2 quicklist 的结构与配置参数3.3 quic ...
Oracle索引失效的情况及处理过程
目录Oracle索引失效哪些情况会导致索引失效呢?1.数据分布不均匀2.索引列上的数据类型转换3.索引列上的函数操作4.索引列上的操作符不匹配5.索引列上的统计信息不准确6.索引列上的数据修改频繁7.索引列上的数据量很小需要注意的是总结Oracle索引失效
SQL开发中经常遇到索引失效导致查询速度缓慢的情况。
哪些情况会导致索引 ...
Redis 数据倾斜产生的原因及问题详解
目录一、什么是Redis数据倾斜?二、数据倾斜产生的原因1. 存储倾斜的原因2. 请求倾斜(热点Key)的原因三、如何诊断数据倾斜?1. 监控告警(预防与发现)2. 使用Redis命令进行排查四、解决方案与最佳实践1. 解决存储倾斜2. 解决请求倾斜(热点Key)3. 通用与预防性措施五、总结一、什么是Redis数据倾斜?
数据倾斜是指在Red ...
Redis高级用法以及golang代码示例
目录前言一、Redis高性能基础二、Redis使用场景2.1 数据库缓存2.2 分布式缓存2.3 MQ消息中间件2.4 分布式锁实践中的注意事项三、代码示例3.1 数据库缓存3.2 分布式锁3.3 消息队列 (Pub/Sub 和基于 List)3.3.1 发布/订阅模式 (Pub/Sub)3.3.2 基于 List 的队列3.4 实践总结与建议总结 前言
Redis作为内存数据库在服务器 ...
Redis 7持久化RDB和AOF的原理机制讲解(图文教程)
目录1.概述2.RDB2.1 快照原理2.2 触发机制2.3 文件处理2.4 优缺点3.AOF3.1 工作流程3.2 重写机制4.混合持久化1.概述
Redis是一个基于内存的数据库,这意味着其主要数据存储和操作均在内存中进行。这种设计使得Redis能够提供极快的读写速度(通常达到微秒级别),适用于高性能场景,如缓存
然而,由于内存的易失性(断电后数据 ...
Redis特殊类型数据结构Bitmap、HyperLogLog、GEO的使用及场景分析
目录1.概述2.数据类型详解2.1 Bitmap2.1.1 Bitmap常用指令2.1.2 Bitmap指令实测2.1.3 Bitmap使用场景2.2 HyperLogLog(基数统计)2.2.1 HyperLogLog常用指令2.2.2 HyperLogLog指令实测2.2.3 HyperLogLog使用场景2.3 GEO2.3.1 常用指令2.3.2 指令实测2.3.2 使用场景3.代码实现4.小结5.参考文献1.概述
上文讲解了Redis五种基 ...
Redis实现未读消息计数的示例代码
目录一、业务场景说明二、未读计数的实现方案1. 核心触发逻辑2. 核心工具类:AppletRedisUtil工具类核心特点三、选型:为什么用 Redis 而非 MySQL?1. 性能碾压:高频场景响应速度差 3 个量级2. 操作更轻量:避免 MySQL 复杂开销3. 天然并发安全:解决 MySQL 更新冲突4. 缓存特性适配:减少数据库压力5. 灵活扩展:支持更多 ...
Redis 分片集群搭建与故障转移实战指南(推荐)
目录1 搭建分片集群1.1 集群结构1.2 准备实例和配置1.3 启动1.4 创建集群1.5 测试2 散列插槽2.1 插槽原理3 集群伸缩3.1 需求分析3.2 创建新的 redis 实例3.3 添加新节点到 redis3.4 转移插槽4 故障转移4.1 自动故障转移4.2 手动故障转移5 RedisTemplate访问分片集群1 搭建分片集群
主从和哨兵可以解决高可用、高并发读的问 ...
redis 中 redisTemplate 的所有操作与函数详解
目录一、基础操作1.1 Key 相关操作1.2 通用操作二、String 类型操作2.1 基本操作2.2 数值操作三、Hash 类型操作四、List 类型操作五、Set 类型操作六、ZSet(有序集合)操作七、事务操作八、管道操作九、发布订阅十、Lua脚本执行版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>s ...
SQL UPDATE 语句详解更新单列、多列的写法
目录一、UPDATE 基本语法二、更新单列数据四、带条件的更新五、常见误区 ⚠️六、UPDATE 的性能优化七、总结在日常开发中,更新数据(UPDATE) 是仅次于 SELECT 的常用 SQL 操作。
无论是修改用户昵称、调整库存数量,还是批量修正数据错误,都离不开 UPDATE 语句。
本文将带你全面掌握 单列更新、多列更新 的正确写法,并 ...
redis批量删除namespace下的数据的实现步骤
在开发中为了更好的管理数据,对redis进行了分组存储操作,在存值时加了命名空间来实现,如下:@Cacheable的value来实现分组
@Cacheable(value = "config",key ="#comparamid+'_'+#comCode" )/* */
@Query(value = "select * from test where comparamid=?1 and configcomcode=?2",nativeQuery = true)
public List <test ...
使用Redis实现会话管理的示例代码
目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作示例:会话管理类2.3 处理会话超时2.4 扩展会话信息示例:扩展会话信息2.5 使用Redis集群实现会话管理示例:使用Redis集群的会话管理总结使用Redis实现会话管理是一种常见且有效的方法,特别适合于分布式系统和高并发场景。Redis的高性 ...
Redis中Hash类型相关命令介绍
目录一、简介二、相关命令2.1 hset 和 hget2.2 hexists2.3 hdel2.4 hkeys2.5 hvals2.6 hgetall2.7 hmget2.8 hlen2.9 hsetnx2.10 hincrby2.11 hincrbyfloat2.12 小结三、编码方式四、应用场景4.1 作为缓存总结 一、简介
在 Redis 中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如 key = “key”,value = { { ...
redis的启动方式操作详解
redis的启动方式1.直接启动进入redis根目录,执行命令:#加上‘&’号使redis以后台程序方式运行
./redis-server &
2.通过指定配置文件启动可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf进入redis根目录,输入命令:
redis-server redis.windows.conf
#如果更改了端口,使用redis-cli客户端连 ...
Redis利用I/O多路复用实现高并发
目录Redis利用I/O多路复用实现高并发I/O多路复用技术原理select系统调用:poll系统调用:epoll(Linux特有):Redis中的实现方式优先使用epoll(Linux系统)其次选择kqueue(BSD系统)最后使用select(通用实现)性能优势单线程处理避免了锁开销事件驱动的高效处理高吞吐量实际应用场景高并发Web应用实时排行榜系统消息队列 ...
redis分片集群的部署和使用教程
目录使用docker在虚拟机部署SpringBoot 整合redis集群redis分片集群一些须知哈希槽redis的拓展和压缩使用docker在虚拟机部署
脚本是个好东西。使用脚本部署那是相当的快速。下面介绍一下我使用脚本+docker部署的步骤吧。
首先拉取镜像,至少是可以分片的版本。
pull images redis:5.0.9-alpine3.11
选取一个工作目录创建 ...