redis
文章平均质量分 66
健康平安的活着
再给我一次重生的机会,我将加倍珍惜,将java事业进行到底。
展开
-
redis高级篇 抢红包案例的设计以及分布式锁
这个公式,保证了每次获取的金额平均值都是等价,不会因为抢红包先后顺序而造成不公平。每次抢到金额=随机区间(0,(M/N)*2)原创 2024-10-02 12:28:49 · 284 阅读 · 0 评论 -
redis高级篇 redis的IO多路复用与Epoll函数
一 IO多路复用1.1 IO多路复用作用原创 2024-09-27 23:36:21 · 435 阅读 · 0 评论 -
redis7中常见数据类型的源码
一 redis数据类型源码1.1 数据类型结构原创 2024-08-04 21:33:47 · 197 阅读 · 0 评论 -
redis7基础篇2 redis的3种模式(主从,哨兵,集群)模式
一 主从复制模式1.1 主从模式原创 2024-05-12 07:10:46 · 127 阅读 · 0 评论 -
分布式锁2:基于redis的插件redission实现分布式锁
Redisson分布式锁是一种基于redis实现的分布式锁,它利用redis的setnx命令实现分布式锁的互斥访问。同时还支持锁的自动续期功能,可以避免因为某个进程崩溃或者网络故障导致锁无法释放的情况。只要线程一加锁成功,就会启动一个watchdog看门狗,它是一个后台线程,会每隔10秒检查一下,等锁进行加锁操作,完成后然后释放锁。其他线程BCD判断加锁的次数为0,就可以进行加锁操作。因此,Redisson就是使用watch dog解决了「还持有锁,那么就会不断的延长锁key的生存时间。原创 2023-10-11 22:37:10 · 1582 阅读 · 0 评论 -
分布式锁2:基于redis实现分布式锁 setnx+lua脚本
redis中setnx+expire是非原子操作, 除了用LUA脚本保证实现原子操作, 其实可以直接使用redis自带的set方法直接实现.setnx+expire+del 命令实现redis的分布式锁;其中 setnx 不存在则新增;给锁设置一个过期时间,防止锁忘记了释放。来抢锁,如果抢到之后,再用。原创 2023-10-11 22:31:28 · 1807 阅读 · 0 评论 -
redis的基础底层篇 zset的详解
redis的zset是一个有序的集合,和普通集合set非常相似,是一个没有重复元素的字符串集合。常用作排行榜等功能,以用户 id 为 value,关注时间或者分数作为 score 进行排序。原创 2023-09-16 07:07:38 · 6058 阅读 · 1 评论 -
redis7高级篇3 数据量亿级别的统计分析(hyperloglog,bitmap,geo)
2.排序统计:在需要展示最新列表,排行榜等场景时,如果数据更新频繁或者需要分页时,建议使用zset127.0.0.1:6379>3.二值统计:集合中的元素只有0和1 ,钉钉打卡的场景,我们只用记录有签到的信息(1签到0没签到)1.聚合统计:统计多个集合聚合的结果,也就是多个集合之间交并差的统计。4.基数统计:集合中不重复元素的总数,使用hperloglgo。原创 2023-08-22 09:27:33 · 996 阅读 · 0 评论 -
redis7高级篇2 redis的BigKey的处理
1.截图3.查看4.查看数据量大小。原创 2023-08-21 15:47:17 · 1034 阅读 · 0 评论 -
redis 7高级篇1 redis的单线程与多线程
1.redis6.x之前网络IO和命令执行都是有一个主线程进行操作完成;但是单线程存在删除del key存储卡顿阻塞问题,redis6.x之后使用IO多路复用技术,一个线程处理多个客户端请求,网络IO的读写,解析部分使用多线程,而命令执行部分仍使用一个主线程执行,这样提供了查询效率,同时解决了删除del key卡顿问题。2.redis基于Io多路复用和epoll函数,减少上下文切换,同时基于内存和数据结构简单 这些是redis查询块的原因单个进程能够实现处理多个客户端的连接请求。原创 2023-08-21 11:53:41 · 3711 阅读 · 0 评论 -
redis 高级篇 redis 源码的读取分析
1每一个kv键值对应有一个dictEntry。原创 2023-07-31 16:04:25 · 392 阅读 · 0 评论 -
redis高级篇2 springboot+redis+bloomfilter实现过滤案例
Bloomfilter:默认是有0组成bit数组和hash函数构成的数据结构,用来判断在海量数据中是否存在某个元素。应用案例:解决缓存穿透。Bloomfilter放在redis前面,如果查询bf中没有则直接返回,如果存在则查询redis,如果redis不存在,则查询mysql数据库。bf拦截一些不必要的请求。原创 2023-07-26 16:07:41 · 704 阅读 · 0 评论 -
redis中使用bloomfilter的白名单功能解决缓存穿透问题
将需要的数据提前缓存到缓存redis中,可以在服务启动时候,或者在使用前一天完成数据的同步等操作。保证后续能够正常使用。原创 2023-07-25 20:26:00 · 472 阅读 · 0 评论 -
redis中使用bloomfilter判断元素是否存在
一个很长的二进制数组(00000000)+一系列随机hash算法映射函数。主要用于判断一个元素是否存在集合中。由一个初始值为0的bit数组组成,和多个hash函数构成,用来判断集合中是否存在某个元素。本质:判断一个数据是否存在一个大的集合中。原创 2023-07-26 11:39:53 · 749 阅读 · 0 评论 -
redis中缓存雪崩,缓存穿透,缓存击穿的原因以及解决方案
在redis中,新,旧数据交替时候,旧数据进行了删除,新数据没有更新过来,造成在高并发环境下,大量请求查询redis没有数据,直接查询mysql,造成mysql的压力骤增,给mysql造成极大的压力,造成一连串的后续异常反应。1.大多数系统设计者考虑用加锁(最多的解决方案)或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写。2.redis中的key设置永不过期;3.redis的集群实现高可用。主从+哨兵在redis中,查询redis数据不存在,查询mysql也不存在,造成两次无用的查询。造成额外原创 2023-07-25 08:18:38 · 463 阅读 · 0 评论 -
红包雨架构的设计汇总
一 微服务总体架构原创 2023-07-21 10:11:33 · 1010 阅读 · 0 评论 -
redis7高级篇-基于redission在多机模式下实现分布式锁
其实只要客户端A一旦加锁成功,就会启动一个watch dog看门狗,它是一个后台线程,会每隔10秒检查一下,如果客户端A还持有锁key,那么就会不断的延长锁key的生存时间。紧接着就会发送一段lua脚本到redis上,比如加锁的那个锁key就是"mylock",并且设置的时间是30秒,30秒后,mylock锁就会被释放。只要线程一加锁成功,就会启动一个watch dog看门狗,它是一个后台线程,会每隔10秒检查一下,如果线程1还持有锁,那么就会不断的延长锁key的生存时间。原创 2023-07-07 20:55:30 · 4107 阅读 · 1 评论 -
springboot 项目整合swagger
【代码】springboot 项目整合swagger。原创 2023-05-29 09:08:08 · 171 阅读 · 0 评论 -
redis 7.x springboot整合redisTemplate 集群版
本次案例操作,是在上篇基础上进行操作。原创 2023-05-28 10:41:19 · 218 阅读 · 0 评论 -
redis 7.x springboot整合redisTemplate
1.1 项目结构。原创 2023-05-27 18:02:23 · 293 阅读 · 1 评论 -
redis 7.x springboot整合jedis,Lettuce实现crud
1.pom文件2.代码3.启动测试 ,在服务端启动redis,注意关闭防火墙1.启动redis2.查看3.运行程序。原创 2023-05-27 17:02:29 · 332 阅读 · 0 评论 -
redis 7.x 高级篇5内存过期淘汰策略的处理办法
1.查看redis默认内存大小。原创 2023-05-27 15:42:59 · 1185 阅读 · 0 评论 -
redis7 高级篇4 mysql和redis的双写一致性实现案例
一 方案【先更新mysql,后删除redis】1.1 架构图原创 2023-05-21 21:32:04 · 168 阅读 · 0 评论 -
redis7高级篇4 缓存双写一致性方案
我们可以对已存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存的操作只是尽最大努力即可。也就是说数据库写成功,缓存更新失败,只要达到过期时间,后面的读请求自然会从数据库中读取最新值,然后回填缓存,达到一致性。一定注意,要以mysql的数据库的写入为准。原创 2023-05-20 22:13:47 · 618 阅读 · 0 评论 -
redis 7.x 持久化-RDB
一 redix 7.x 持久化-Rdb原创 2023-05-20 22:04:49 · 147 阅读 · 0 评论 -
redis7.x 持久化之RDB
redis的持久化分为RDB和持久化。原创 2023-05-05 22:15:11 · 247 阅读 · 0 评论 -
redis7 基础篇- redis各种数据类型的操作
一 各种数据类型介绍1.1 10大数据类型原创 2023-04-03 21:41:36 · 367 阅读 · 0 评论 -
linux服务器安装 redis7.x
2.如果没有gcc,则进行在线安装: yum -y install gcc-c++1.确保linux环境下安装gcc,查看。看到如下信息,则安装完成。原创 2023-04-02 20:03:42 · 370 阅读 · 0 评论 -
linux服务器上离线安装redis
一 离线安装redis1.1 说明Redis为c语言编写,因此安装需要配置c语言编译环境gcc,查看linux是否安装了该编译环境。[uredis@localhost ~]$ gcc -vbash: gcc: command not found...[uredis@localhost ~]$1.2软件包下载地址1.gcc百度网盘:https://pan.baidu.com/s/1Rh9MUiDSVYsN3XI7M1rinQ提取码:fv912.redis各种软件包版本..原创 2021-07-26 15:23:44 · 1540 阅读 · 0 评论