Redis
未读
Redis的事件驱动模型
网络处理模型 单线程网络处理模型 多线程网络处理模型 线程池网络处理模型 I/O多路复用网络处理模型 ==注意:==网络请求皆是从网卡到达用户程序的I/O请求 Redis 事件循环 在 Redis 中,底层就是使用 IO 多路复用处理网络请求。并且创建一个 EventLoop 对象专门处理事件。 E
Redis
未读
Redis中的多线程
参考: Redis 多线程网络模型全面揭秘 - 知乎 (zhihu.com) 引言 Redis 6.0 之前单线程指的是 Redis 只有一个线程干活么? 非也,Redis 在处理客户端的请求时,包括获取 (socket 读)、解析、执行、内容返回 (socket 写) 等都由一个顺序串行的主线程处
Redisson
未读
Redisson有几种锁?使用场景是什么?
Redisson 提供了多种分布式锁实现,每种锁适用于不同的场景。以下是常见的锁类型及其适用场景的总结: 可重入锁(Reentrant Lock) 特点: 支持同一线程多次加锁(可重入)。 默认是非公平锁,但支持公平锁模式。 通过 lock() 和 unlock() 手动管理锁的获取与释放。 适用场
Redis
未读
Redis的持久化存储
Redis中的持久化策略 当出现Redis宕机时,我们需要做的是重启redis,尽快让他对外提供服务,缓存==全部无法命中==,在redis里根本找不到数据,这时候就会出现==缓存雪崩==的问题。所有的请求,都没有在Redis中命中,就会去MySQL数据库这种数据源头中找,一下子MySQL无法承受高
Redis
未读
缓存穿透、缓存击穿和缓存雪崩
缓存穿透 缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。 1、解决方
RabbitMQ
未读
0x33【RabbitMQ】消费端自定义监听
1、介绍 我们一般就是在代码中编写while循环,调用consumer.nextDelivery方法获取下一条信息,然后进行消费处理。 但是我们实际使用自定义的Consumer更加的方便,解耦性更加的强,也是实际工作中最常用的工作方式。 2、代码编写 自定义消费者 import com.rabbit
RabbitMQ
未读
0x32【RabbitMQ】整合Spring AMQP实战
RabbitAdmin SpringAMQP 声明 RabbitTemplate SimpleMessageListenerContainer MessageListenerAdapter MessageConverter RabbitAdmin RabbitAdmin类可以很好的操作RabbitM
RabbitMQ
未读
0x31【RabbitMQ】消息生产和消费
1、简介 ConnectionFactory:获取连接工厂 Connection:一个连接 Channel:数据通信信道,可发送和接受消息 Queue:具体的消息存储队列 Producer & Consumer:生产者和消费者 2、示例代码 生产者 public class Producter {
RabbitMQ
未读
0x30 【RabbitMQ】一些小问题的解答
先有消费者还是先有生产者? 在RabbitMQ中,没有严格的顺序要求。你可以先启动生产者来发送消息,也可以先启动消费者来等待消息。但是,为了消息能够成功发送和接收,必须确保交换机和队列已经被正确声明,并且绑定关系(Bindings)已经设置好。 生产者有了,但是交换机的配置没有怎么办?