自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 RocketMQ详细解析(一)

NameServer是一个Broker与Topic路由的注册中心。主要包括两个功能:接收Broker集群的注册信息并且保存下来作为路由信息的基本数据;提供心跳机制检测Broker是否还存活每个NameServer都保存Broker集群的整个路由信息和用于客户端查询的队列信息。Producer和Consumer都可以通过NameServer可以获取整个Broker集群的路由信息,从而进行消息的投递和消费。

2024-06-25 12:57:27 1073

原创 Redis如何保证数据一致性

首先你要记下来redis之前的值,回滚的时候再写回去,如果是insert 你得做一次delete,如果是update 你需要update回去,如果delete你得insert,再者,如果回调中发生了异常又不好解决了。同时有请求A和请求B进行更新操作,那么会出现以下问题:请求A更新缓存应该比请求B更新缓存早才对,但是因为网络等原因,B却比A更早更新了缓存。同时有一个请求A进行更新操作,另一个请求B进行查询操作,会导致不一致,如果不采用给缓存设置过期时间策略,该数据永远都是脏数据。

2024-06-22 13:19:08 712

原创 Redis内存回收机制

网上有很多关于这方面的东西,但是我发现有些文章讲的一点都不清楚,甚至会出现错的嵌套的情况。

2024-06-18 15:40:39 463

原创 Redis的发布订阅机制及其使用场景

Redis提供了“发布/订阅”机制,在这种模式下,生产者向频道(Channel)发送消息,订阅这个Channel的消费者接收到消息,然后可以根据消息来处理事务。Redisson的分布式锁的实现就采用了发布订阅模式:获取锁时,若获取不成功则订阅释放锁的消息,在收到释放锁的消息前阻塞,收到释放锁的消息后再去循环获取锁。这两个方法类似,放到一起去讲,就是Channel的方式,使两个不同的业务代码分开来写,解耦的同时还能提高性能。比如秒杀系统,视频订阅等功能。

2024-06-17 19:00:33 382

原创 Redis三大缓存问题解析以及解决方案

缓存击穿是指用户请求访问的数据不存在,导致请求穿过redis到达数据库层,如果有人恶意使用爬虫来不断攻击,会有大量的请求导致数据库宕机。

2024-06-17 18:22:34 1206

原创 Redis为什么快

多路复用主要有三种技术,poll,epoll,select。epoll是目前最新的并且最好用的,除了redis使用的是epoll,Netty也是使用的epoll。多路复用可以使多个请求放到同一个线程来实现,如果没有请求的时候,就会采用阻塞的形式,将CPU交出去给其他线程使用,当收到请求,那么就开始处理请求。,redis中命令的读写**还是用单线程来实现的。因为此篇文章讲的是Redis,就不在epoll上面多费口舌,可以参考文章。,不会被分割,如果涉及到多个命令一起使用,在。是单线程,其他操作,比如。

2024-06-17 18:21:43 363

原创 Redis持久化--RDB和AOF

此文章讲解了AOF和RDB的区别,并说明了AOF文件过大的解决方法

2024-06-17 15:03:52 414

原创 Redis数据类型及其底层,以及使用场景

Redis的基础知识

2024-06-17 14:38:52 461

原创 RabbitMQ常见问题解决方案

其中的autoDelete为true表示的意思是,如果这个声明的队列在与最后一个消费者断开连接后,自动删除这个队列,durable属性设置为true表明的意思是,即使这个交换机没有队列,也不会删除交换机,达到了交换机持久化的目的。如果消费者采用多线程的方式也可能会导致消息乱序的问题,那么可以将消息ID进行hash计算,相同值放入同一个内存队列,让指定线程执行,就可以解决顺序消费的问题。一般消费者弄丢消息是开了自动确认消息机制,可以使用ack机制,默认情况下自动应答,可以使用手动ack,然后再删除消息。

2024-06-17 13:12:40 988

原创 Java为什么要使用抽象类和抽象方法

刚开始学Java的时候确实是不知道为什么Java需要使用抽象类和抽象方法的原因。举个例子:我们现在有一个父类animal,它有很多子类,动物都会发出自己声音,所以我们如果需要去定义一下animal类,那么我们需要写一个animal发出的声音。但是每个动物发出的叫声都不相同,难道我们需要在父类中写一个笼统发出声音的方法吗?很显然,这不行,所以这就是可以使用抽象方法。

2024-03-09 16:20:04 194

原创 黑马Java拼图游戏需求文档和完整代码展示

拼图游戏项目概述: 拼图游戏是一款基于Java基础语法开发的桌面游戏,通过拖动图片块来完成图片的拼图,游戏分为重新开始、重新登录、关闭游戏、更换图片等功能。

2024-02-04 16:55:03 1723 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除