目录一、摘要二、方案实践2.1、引入 redis 组件2.2、添加 redis 环境配置2.3、编写服务验证逻辑,通过 aop 代理方式实现2.4、在相关的业务接口上,增加SubmitLimit注解即可三、小结一、摘要在上一篇文章中,我们详细的介绍了随着下单流量逐渐上升,为了降低数据库的访问压力,通过请求唯一ID+redis分布式锁来防止接口重复提交,流程图 ......
417
0
0
2023-06-18
目录1、redis哨兵(Sentinel)1.1、redis集群介绍1.2、redis哨兵(Sentinel)的工作原理1.2.1sentinel中的三个定时任务:1.3、实现哨兵1.3.1、实现哨兵需要先实现一下主从复制的架构1.3.2、编辑哨兵的配置文件1.3.2、启动哨兵1.3.3、验证哨兵端口1.3.4、查看哨兵日志1.3.5、当前sentinel状 ......
361
0
0
2023-06-16
以下文章来源于sowhat1412 ,作者sowhat1412 总感觉哪里不对,但是又说不上来1、基本类型及底层实现 1.1、String 用途: 底层 :C语言中String用 char []数组表示,源码中用 SDS (simple dynamic string)封装char[],这是是 Redis 存储的 最小单元 ,一个SDS最大可以存储51 ......
389
0
0
2023-06-01
目录什么是 Redis前置知识String介绍常用命令使用场景底层实现SDS 结构体List介绍常用命令使用场景底层实现ZipListQuickListHash介绍常用命令使用场景底层实现DictDict 的 rehashSet介绍常用命令使用场景底层实现IntsetZSet介绍常用命令使用场景底层实现SkipList什么是 RedisRedis 是基于内存 ......
381
0
0
2023-05-15
目录一、高可用什么是高可用二、Redis持久化持久化功能RDB持久化 触发条件bgsave执行流程AOF持久化执行流程命令追加文件写入和文件同步文件重写文件重写流程三、RDB和AOF的优缺点RDB持久化的优缺点优点缺点AOF持久化优缺点四、Redis性能管理查看Redis内存使用内存碎片率内存碎片如何产生跟踪内存碎片率解决碎片率大的问题内存使用率内 ......
395
0
0
2023-05-02
准确的讲,Redis 事务包含两种模式 : 事务模式 和 Lua 脚本。先说结论:Redis 的事务模式具备如下特点:保证隔离性;无法保证持久性;具备了一定的原子性,但不支持回滚;一致性的概念有分歧,假设在一致性的核心是约束的语意下,Redis 的事务可以保证一致性。但 Lua 脚本更具备实用场景,它是另一种形式的事务,他具备一定的原子性,但脚本报错的情况下 ......
396
0
0
2023-05-02
目录一、单点Redis的问题二、RDB三、AOF四、Redis优化秒杀流程1、秒杀步骤:2、Redis优化秒杀步骤:3、秒杀的lua脚本 4、调用秒杀的lua脚本5、通过线程池,操作阻塞队列五、基于Redis实现共享session登录基于session实现登录一、单点Redis的问题1、数据丢失问题Redis数据持久化。2、并发能力问题大家主从集群 ......
438
0
0
2023-04-27
目录集群结构准备实例和配置启动创建集群测试集群结构分片集群需要的节点数量较多,这里我们搭建一个最小的分片集群,包含3个master节点,每个master包含一个slave节点,结构如下:这里我们会在同一台虚拟机中开启6个redis实例,模拟分片集群,信息如下:IPPORT角色192.168.150.1017001master192.168.150.10170 ......
398
0
0
2023-04-06
主流 I/O 模型阻塞IO、非阻塞IO、异步 IO 。BIO 模型同步阻塞 模型,一个客户单对应一个链接的处理线程缺点:1、IO 中如果进行 read 是阻塞操作,如果请求的链接操作不做任何操作,也会导致线程阻塞,浪费线程资源2、如果线程很多,会导致服务器压力增加,比如 C10K问题引用场景:BIO 方式运用数目比较小且固定的架构,这种方式对服务器资源要求比 ......
396
0
0
2023-03-24
目录一、StringⅠ、set、get、append、strlen、existsⅡ、incr、decr、incrby、decrbyⅢ、getset、setnxⅣ、setex、ttlⅤ、mget、mset、msetnx二、ListⅠ、lpush、lpushx、lrangeⅡ、lpop、llenⅢ、lrem、lset、lindex、ltrim Ⅳ、li ......
409
0
0
2023-03-16
如果面试官问我:Redis为什么这么快?我肯定会说:因为Redis是内存数据库!如果不是直接把数据放在内存里,甭管怎么优化数据结构、设计怎样的网络I/O模型,都不可能达到如今这般的执行效率。但是这么回答多半会让我直接回去等通知了。。。因为面试官想听到的就是数据结构和网络模型方面的回答,虽然这两者只是在内存基础上的锦上添花。说这些并非为了强调网络模型并不重要, ......
401
0
0
2023-03-13
目录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,这个文件主要负责:客户端的创建与释放. ......
377
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. 前言为什么要进行持久化?:持久 ......
331
0
0
2023-02-23
主从复制概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave已读为主 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制 ......
503
0
0
2023-02-19