redis
文章平均质量分 71
健康平安的活着
再给我一次重生的机会,我将加倍珍惜,将java事业进行到底。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis7基础篇3 redis的集群模式3
Redis集群支持多个master,每个master节点又可以挂载多个slave;客户端与redis的节点连接,不需要连接集群中所有的节点,只需要任意连接集群中的一个可用节点即可。Redis集群不保证强一致性,这意味着在特定的条件下,redis集群可能会丢掉一些被系统收到的写入请求命令。Redis槽位Slot是Redis集群中的一个重要概念,它是一个0到16383之间的整数,用于表示一个数据分片。Redis集群将所有的键均匀分布在16384个槽位上,每个槽位存储一个或多个键。原创 2025-01-04 09:39:53 · 1308 阅读 · 0 评论 -
redis7基础篇2 redis的哨兵模式2
当一个主从配置的master失效后,sentinel可以选举出一个新的master,用于自动接替原来master的工作,主从配置中的其他redis服务器自动指向新的master同步数据,一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。表示允许并行同步的slave个数,当master挂了后,哨兵会选出新的master,此时,剩余的slave会向新的mster发起同步数据。故障转移的超时时间,进行故障转移时,如果超过设置的毫秒,表示故障转移失败。原创 2025-01-04 07:32:45 · 716 阅读 · 0 评论 -
redis7基础篇2 redis的主从模式1
作用:主从复制,master以写为主,slave以读为主;当master有数据变化的时候,自动将新的数据异步同步到其它slave数据库。其他作用:读写分离;容灾恢复;数据备份;水平扩容支撑高并发。1.info replication 可以查看复制节点的主从关系和配置信息。2.一般写入redis.conf配置文件内,这条指令的作用是指定要连接的主节点的 IP 地址和端口号,使得当前的 Redis 实例能够从主节点那里复制数据。3.原创 2025-01-03 21:42:17 · 969 阅读 · 0 评论 -
数据库中的分表,分库,分区与分片的区别与联系
分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值。它不仅能够应对规模的缩放挑战,还能够处理分片带来的复杂性,同时在处理大量数据时保持卓越的性能。基于目录的分片:维护一个查找表,将特定的键直接映射到特定的分片。分表时机:单表出现性能瓶颈,通常是因为单表数据量过大,经过sql优化,还是读写性能较慢,以及涉及到当频繁插入或者联合查询时,速度变慢。原创 2024-11-30 21:34:05 · 1894 阅读 · 0 评论 -
redis高级篇 抢红包案例的设计以及分布式锁
这个公式,保证了每次获取的金额平均值都是等价,不会因为抢红包先后顺序而造成不公平。每次抢到金额=随机区间(0,(M/N)*2)原创 2024-10-02 12:28:49 · 421 阅读 · 0 评论 -
redis高级篇 redis的IO多路复用与Epoll函数
一 IO多路复用1.1 IO多路复用作用原创 2024-09-27 23:36:21 · 755 阅读 · 0 评论 -
redis7中常见数据类型的源码
一 redis数据类型源码1.1 数据类型结构原创 2024-08-04 21:33:47 · 310 阅读 · 0 评论 -
redis7基础篇2 redis的3种模式(主从,哨兵,集群)模式
一 主从复制模式1.1 主从模式原创 2024-05-12 07:10:46 · 264 阅读 · 0 评论 -
分布式锁2:基于redis的插件redission实现分布式锁
Redisson分布式锁是一种基于redis实现的分布式锁,它利用redis的setnx命令实现分布式锁的互斥访问。同时还支持锁的自动续期功能,可以避免因为某个进程崩溃或者网络故障导致锁无法释放的情况。只要线程一加锁成功,就会启动一个watchdog看门狗,它是一个后台线程,会每隔10秒检查一下,等锁进行加锁操作,完成后然后释放锁。其他线程BCD判断加锁的次数为0,就可以进行加锁操作。因此,Redisson就是使用watch dog解决了「还持有锁,那么就会不断的延长锁key的生存时间。原创 2023-10-11 22:37:10 · 2651 阅读 · 0 评论 -
分布式锁2:基于redis实现分布式锁 setnx+lua脚本
redis中setnx+expire是非原子操作, 除了用LUA脚本保证实现原子操作, 其实可以直接使用redis自带的set方法直接实现.setnx+expire+del 命令实现redis的分布式锁;其中 setnx 不存在则新增;给锁设置一个过期时间,防止锁忘记了释放。来抢锁,如果抢到之后,再用。原创 2023-10-11 22:31:28 · 2786 阅读 · 0 评论 -
redis的基础底层篇 zset的详解
redis的zset是一个有序的集合,和普通集合set非常相似,是一个没有重复元素的字符串集合。常用作排行榜等功能,以用户 id 为 value,关注时间或者分数作为 score 进行排序。原创 2023-09-16 07:07:38 · 7740 阅读 · 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 · 1065 阅读 · 0 评论 -
redis7高级篇2 redis的BigKey的处理
1.截图3.查看4.查看数据量大小。原创 2023-08-21 15:47:17 · 1249 阅读 · 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 · 4951 阅读 · 0 评论 -
redis 高级篇 redis 源码的读取分析
1每一个kv键值对应有一个dictEntry。原创 2023-07-31 16:04:25 · 433 阅读 · 0 评论 -
redis高级篇2 springboot+redis+bloomfilter实现过滤案例
Bloomfilter:默认是有0组成bit数组和hash函数构成的数据结构,用来判断在海量数据中是否存在某个元素。应用案例:解决缓存穿透。Bloomfilter放在redis前面,如果查询bf中没有则直接返回,如果存在则查询redis,如果redis不存在,则查询mysql数据库。bf拦截一些不必要的请求。原创 2023-07-26 16:07:41 · 1008 阅读 · 0 评论 -
redis中使用bloomfilter的白名单功能解决缓存穿透问题
将需要的数据提前缓存到缓存redis中,可以在服务启动时候,或者在使用前一天完成数据的同步等操作。保证后续能够正常使用。原创 2023-07-25 20:26:00 · 591 阅读 · 0 评论 -
redis中使用bloomfilter判断元素是否存在
一个很长的二进制数组(00000000)+一系列随机hash算法映射函数。主要用于判断一个元素是否存在集合中。由一个初始值为0的bit数组组成,和多个hash函数构成,用来判断集合中是否存在某个元素。本质:判断一个数据是否存在一个大的集合中。原创 2023-07-26 11:39:53 · 896 阅读 · 0 评论 -
redis中缓存雪崩,缓存穿透,缓存击穿的原因以及解决方案
在redis中,新,旧数据交替时候,旧数据进行了删除,新数据没有更新过来,造成在高并发环境下,大量请求查询redis没有数据,直接查询mysql,造成mysql的压力骤增,给mysql造成极大的压力,造成一连串的后续异常反应。1.大多数系统设计者考虑用加锁(最多的解决方案)或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写。2.redis中的key设置永不过期;3.redis的集群实现高可用。主从+哨兵在redis中,查询redis数据不存在,查询mysql也不存在,造成两次无用的查询。造成额外原创 2023-07-25 08:18:38 · 539 阅读 · 0 评论 -
红包雨架构的设计汇总
一 微服务总体架构原创 2023-07-21 10:11:33 · 1394 阅读 · 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 · 4433 阅读 · 1 评论 -
springboot 项目整合swagger
【代码】springboot 项目整合swagger。原创 2023-05-29 09:08:08 · 207 阅读 · 0 评论 -
redis 7.x springboot整合redisTemplate 集群版
本次案例操作,是在上篇基础上进行操作。原创 2023-05-28 10:41:19 · 307 阅读 · 0 评论 -
redis 7.x springboot整合redisTemplate
1.1 项目结构。原创 2023-05-27 18:02:23 · 368 阅读 · 1 评论 -
redis 7.x springboot整合jedis,Lettuce实现crud
1.pom文件2.代码3.启动测试 ,在服务端启动redis,注意关闭防火墙1.启动redis2.查看3.运行程序。原创 2023-05-27 17:02:29 · 463 阅读 · 0 评论 -
redis 7.x 高级篇5内存过期淘汰策略的处理办法
1.查看redis默认内存大小。原创 2023-05-27 15:42:59 · 1333 阅读 · 0 评论 -
redis7 高级篇4 mysql和redis的双写一致性实现案例
一 方案【先更新mysql,后删除redis】1.1 架构图原创 2023-05-21 21:32:04 · 237 阅读 · 0 评论 -
redis7高级篇4 缓存双写一致性方案
我们可以对已存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存的操作只是尽最大努力即可。也就是说数据库写成功,缓存更新失败,只要达到过期时间,后面的读请求自然会从数据库中读取最新值,然后回填缓存,达到一致性。一定注意,要以mysql的数据库的写入为准。原创 2023-05-20 22:13:47 · 743 阅读 · 0 评论 -
redis 7.x 持久化-RDB
一 redix 7.x 持久化-Rdb原创 2023-05-20 22:04:49 · 192 阅读 · 0 评论 -
redis7.x 持久化之RDB
redis的持久化分为RDB和持久化。原创 2023-05-05 22:15:11 · 342 阅读 · 0 评论 -
redis7 基础篇- redis各种数据类型的操作
一 各种数据类型介绍1.1 10大数据类型原创 2023-04-03 21:41:36 · 461 阅读 · 0 评论 -
linux服务器安装 redis7.x
2.如果没有gcc,则进行在线安装: yum -y install gcc-c++1.确保linux环境下安装gcc,查看。看到如下信息,则安装完成。原创 2023-04-02 20:03:42 · 426 阅读 · 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 · 1674 阅读 · 0 评论
分享