- 博客(21)
- 收藏
- 关注
原创 RabbMQ的消息可靠性投递、CA、消费端限流以及TTL
1. 正文–rabbitMQ高级篇 1.消息可靠性投递 2.Consumer ACK 3.消费端限流 4. TTL 2.消息可靠性投递 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。 消息投递步骤: 1.生产者(channel)---->交换机------>队列中。 为了确保消息的可靠性投递,提供了如下两种方式 confirm 确认模式 return 退回模式 (1)确认模式 必
2021-05-05 22:39:00 228
原创 RabbitMQ死信队列、延迟队列、幂等性以及集群的搭建
1.正文 1. 死信队列 2. 延迟队列 3. 消息的幂等性消费 4. rabbitMQ集群的搭建。 2. 死信队列 死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。 消息成为死信的三种情况: 1. 队列消息长度到达限制; 2. 消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false; 3. 原队列存
2021-05-05 22:27:45 223
转载 Redis的缓存穿透和缓存雪崩
Redis的缓存穿透和缓存雪崩 先想一想,redis缓存作为数据库前面的一道门槛,它能极大的减少了直接访问数据库而造成的数据库崩溃,但是此时缓存中没有所访问的数据,用户是会直接访问数据库,那么此时就出现问题了,缓存中没有,就会去查询数据库,每一次查询都会检索一次数据库信息,那么此时有人如果恶意大量访问这条不存在的数据呢? 没错,就是想象的那样,数据库会因为大量访问而崩溃,进而导致整个系统停止运行。 上面这个问题所说的就是缓存穿透,那么该如何解决呢? 1、Redis的缓存穿透 现象:缓存穿透是指查询一个根
2021-04-26 10:40:53 129
转载 SpringBoot使用Redis
SpringBoot使用Redis 1、SpringBoot链接Redis 使用redisTemplate该类可以存放任意类型的数据,但是该类型的数据必须实现序列,获取redis中对应的数据时,会进行反序列化。 如果使用RedisTemplate建议大家指定key,value,以及hashkey的序列化方式。 锁都是多线程的,所以普通方式是不能测试出来的,此时需要用软件【点这里】,使用压力测试,测试多线程。 1、1 配置application.properties文件 #Redis服务器IP地址 spr
2021-04-26 10:39:55 3680
转载 Redis配置哨兵模式(sentinel)
Redis配置哨兵模式(sentinel) 昨天最后留了一个问题,主服务器挂掉了,子服务器怎么上位还是说等待主服务器归来? 答案是主机挂掉了,子节点还会等待主机恢复,如果需要更改主机,还需要手动配置这样很不方便,这时候哨兵模式就派上用场了。 今天的内容是接着上一篇【点这里】继续配置的。 1、哨兵模式(sentinel)是什么? 哨兵是一个独立的进程,其原理是:哨兵通过向redis服务器发送命令,等待redis服务器响应,从而监控多个运行中的redis实例。 通过发送命令,让redis服务器返回监控其运行状
2021-04-26 10:39:03 2705
转载 Redis配置主从模式
Redis配置主从模式 Redis主从模式是什么? 不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的。同时,将数据完全存储在单个redis中也会存在数据备份和数据量较大造成性能降低的问题。主从模式很好的解决了数据备份问题,并且由于主从服务数据几乎是一致的,因而可以将写入数据的命令发送给主机执行,而读取数据的命令发送给不同的从机执行,从而达到读写分离的目的。 1、创建文件夹并在文件夹里面复制两个redis.
2021-04-26 10:38:03 386
转载 Centos7安装Redis
Centos7安装Redis 0、更新文件 yum update -y 这里会更新好多内容,需要等待一会。 1、下载redis 【CSDN下载】 https://redis.io/ 2、将压缩包放到Linux,我放在了export/intstall并解压 cd export/install tar -zxvf redis-6.2.1.tar.gz 3、安装环境c++ //安装c++ yum install gcc-c++ -y //查看版本 gcc -v 4、配置基本文件 cd redis-6.2
2021-04-26 10:37:00 105
转载 redis的简单介绍
redis的简单介绍 做个笔记,记录一下redis的特点吧。 1、redis非关系型数据库 Redis是用C语言开发的一个开源的高性能基于内存运行的键值对NoSQL数据库。 2、NOSQL的概念 NOSQL(Not only sql):不仅是sql语句, 它是对所有非关系型数据库的一种统称。 除去关系型数据库之外的都是非关系数据库。 这个时候就要提一下RDBMS了。 RDBMS : 关系型数据库管理系统,是建立在关系模型的基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 3、NOSQL和
2021-04-26 10:32:45 178
转载 Redis的持久化方式
Redis的持久化方式 记录一下持久化的使用方式吧,主要是RDB和AOF两种。 1、RDB快照持久化方式 1、1 如何处罚RDB持久化 手动save命令 手动bgsave命令 通过配置文件自动触发 1、1、2save和bgsave的区别 save命令 该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下: 执行流程: 1、开启服务。 redis-server redis.conf redis-cli 2、添加一条数据 set k1
2021-04-26 10:31:52 73
转载 Redis使用去中心化分片集群
Redis使用去中心化分片集群 【原文链接】 1、去中心化分片集群是什么?请简单介绍。 Redis分片集群对Redis集群进行分片,采用多主多从的方式实现Redis集群,每一个分片都是由一个Redis主机和多个从机组成,片区和片区之间是相互平行的,Redis Cluster就是Redis 3.0+版本之后官方推荐的一种分片集群实现方式,主要是基于Hash卡槽(slot)和crc16(key)算法的实现策略来实现Redis集群分片和数据跨主机转移、共享。这是一种去中心化的集群解决方案,可以实现Redis动态扩
2021-04-26 10:28:16 110
原创 redis集群的搭建与List 队列类型 和 set集合类型 sortSet 有序集合
1. 正文 1. List 队列类型 和 set集合类型 sortSet 有序集合 2. Redis的持久化方式。 3. redis集群的搭建。 (1)主从模式 (2)哨兵模式 (3)去中心集群。 2.List 队列类型 lpush: 将一个或多个值 value 插入到列表 key 的表头. lpop: 移除并返回列表 key 的头元素。 lrange: 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。 3. set集合 sadd key
2021-04-21 10:59:55 368
原创 redis集群、哨兵模式
1. 正文 1. redis的集群的其他模式 哨兵模式: 去中心化集群 2.Java连接redis. 3.springboot整合redis 4.redis的应用场景: 缓存。 2. 哨兵模式: 修改sentinel.conf的配置 # 127.0.0.1表示redis主节点的ip # 6379 表示主节点的端口号 # 2 表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点。 sentinel monitor mymaster 127.0.0.1 7001 1
2021-04-21 10:47:22 227
原创 springboot连接redis
1. 正文 1. springboot连接redis 2. springboot使用场景 3. springboot连接redis集群。 4. redis的常见面试题。 2. springboot连接redis 使用redisTemplate该类可以存放任意类型的数据,但是该类型的数据必须实现序列,获取redis中对应的数据时,会进行反序列化。 如果使用RedisTemplate建议大家指定key,value,以及hashkey的序列化方式。 package com.ykq.config; /** *
2021-04-21 10:44:39 482
原创 redis分布式锁
1. 正文 1. 使用redis作为分布式锁。 2. redis中常见的面试题。 (1)redis缓存穿透,以及缓存雪崩。 2. 使用redis作为分布式锁。 锁场景: package com.ykq.distributedlock.service; import com.ykq.distributedlock.dao.StockDao; import com.ykq.distributedlock.entity.Stock; import org.springframework.stereot
2021-04-21 10:40:18 147
原创 rabbit中间件
1. 回顾 1. 使用redis解决的分布式锁。 setnx() 2. 第三方库 redisson. 3. redis的面试题。 (1) redis的缓存穿透?如何避免缓存穿透? 如果数据库中没有对应的记录,而缓存中也没有对应的记录。而这时有大量的请求恶意放该数据。这样就造成了缓存穿透。 使用一个空对象。弊端:再缓存中存在很多冗余对象。 可以使用布隆过滤器。bloomfilter 底层是bitmap. (2) redis缓存的雪崩?如何避免雪崩
2021-04-21 10:25:01 230
原创 rabbit的工作模式
1. 正文 1. 工作者模式: 2. 发布订阅模式 3. 路由模式 4. topic主体模式。 5. Springboot整合rabbitMQ 2. 工作者模式: 特点: 1. 一个生产者 2. 由多个消费。 3. 统一个队列。 4. 这些消费者之间存在竞争关系。 用处: 比如批量处理上. rabbitMQ里面积压了大量的消息。 生产者 package com.ykq.work; import com.rabbitmq.client.Channel; i
2021-04-21 10:19:10 320
原创 RabbitMQ
1、什么是MQ? MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据。使用 Erlang 语音编写,基于 AMQP 协议。 2、MQ的优缺点 优点: 应用解耦:提高系统容错性和可维护性。异步提速:提升用户体验和系统吞吐量。削峰填谷:提高系统稳定性。 缺点: 系统可用性降低。系统引用的外部依赖越多,系统稳定性越差,一旦MQ宕机,就会对业务造成影
2021-04-21 10:05:47 103
原创 mybatis的优化 以及动态sql语句
1. 正文 1. mybatis的一些优化 2. 解决属性名和字段名不一致的情况。 3. 联表查询 。 4. 动态sql语句。 2. mybatis的一些优化 (1) 可以把数据源的信息抽取到properties文件中。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PcMG1sxE-1616386142325)(assets\1616220056956.png)] 创建一个属性文件内容如下 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BM
2021-03-22 12:10:25 453
原创 mybatis入门
Mybatis 1. Mybatis 介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs) 当前,最新版本是MyBatis
2021-03-20 09:04:43 89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人