博客园 - AoTuDeMan
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=66355
2022-07-01T08:21:54Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
feed.cnblogs.com
https://www.cnblogs.com/Joe-Go/p/16424397.html
Redis对象编码(encoding)之字符串对象详解 - AoTuDeMan
上篇文章讲述了Redis对象的属性https://www.cnblogs.com/Joe-Go/p/16420643.html,这篇文章就是对上篇文章中Redis对象属性encoding(编码)之字符串对象进行详细的解释 字符串对象 字符串的编码可以是int、embstr、raw; 如果一个字符串对
2022-06-29T09:51:00Z
2022-06-29T09:51:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】上篇文章讲述了Redis对象的属性https://www.cnblogs.com/Joe-Go/p/16420643.html,这篇文章就是对上篇文章中Redis对象属性encoding(编码)之字符串对象进行详细的解释 字符串对象 字符串的编码可以是int、embstr、raw; 如果一个字符串对 <a href="https://www.cnblogs.com/Joe-Go/p/16424397.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/16420643.html
Redis对象属性详解 - AoTuDeMan
Redis的对象结构如下: 1 typedef struct redisObject{ 2 3 //类型 4 unsigned type:4; 5 6 //编码 7 unsigned encoding:4; 8 9 //指向底层数据的指针 10 void *ptr; 11 12 //对象引用计数 1
2022-06-29T06:49:00Z
2022-06-29T06:49:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】Redis的对象结构如下: 1 typedef struct redisObject{ 2 3 //类型 4 unsigned type:4; 5 6 //编码 7 unsigned encoding:4; 8 9 //指向底层数据的指针 10 void *ptr; 11 12 //对象引用计数 1 <a href="https://www.cnblogs.com/Joe-Go/p/16420643.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10951935.html
镜像队列 - AoTuDeMan
如果RabbitMQ集群中只有一个Broker节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有的消息都设置为持久化,并且对应的队列也可以将durable属性设置为true,但是这样仍然无法避免由于缓存的问题:因为在消息发送后和被写入磁盘并执行刷盘动作之间存在
2019-06-03T12:31:00Z
2019-06-03T12:31:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】如果RabbitMQ集群中只有一个Broker节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有的消息都设置为持久化,并且对应的队列也可以将durable属性设置为true,但是这样仍然无法避免由于缓存的问题:因为在消息发送后和被写入磁盘并执行刷盘动作之间存在 <a href="https://www.cnblogs.com/Joe-Go/p/10951935.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10951615.html
流控 - AoTuDeMan
RabbitMQ可以对内存和磁盘的使用量设置阈值,当到达阈值后,生产者将被阻塞,直到对应项恢复正常。除了这两个阈值,从2.8.0版本开始,RabbitMQ还引入了流控(Flow Control)机制来确保稳定性。流控机制是用来避免消息的发送频率过快而导致服务器难以支撑的情形。内存和磁盘告警相当于全局
2019-05-30T11:36:00Z
2019-05-30T11:36:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】RabbitMQ可以对内存和磁盘的使用量设置阈值,当到达阈值后,生产者将被阻塞,直到对应项恢复正常。除了这两个阈值,从2.8.0版本开始,RabbitMQ还引入了流控(Flow Control)机制来确保稳定性。流控机制是用来避免消息的发送频率过快而导致服务器难以支撑的情形。内存和磁盘告警相当于全局 <a href="https://www.cnblogs.com/Joe-Go/p/10951615.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10946078.html
内存及磁盘告警 - AoTuDeMan
当内存使用超过配置的阈值或者磁盘剩余空间低于配置的阈值时,RabbitMQ都会暂时阻塞(block)客户端的连接(Connection)并停止接收从客户端发来的消息,以此避免服务崩溃。与此同时,客户端与服务端的心跳检测也会失效。可以通过rabbitmqctl list_connections命令或者
2019-05-29T12:42:00Z
2019-05-29T12:42:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】当内存使用超过配置的阈值或者磁盘剩余空间低于配置的阈值时,RabbitMQ都会暂时阻塞(block)客户端的连接(Connection)并停止接收从客户端发来的消息,以此避免服务崩溃。与此同时,客户端与服务端的心跳检测也会失效。可以通过rabbitmqctl list_connections命令或者 <a href="https://www.cnblogs.com/Joe-Go/p/10946078.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10940112.html
RabbitMQ消息的存储机制以及队列的结构 - AoTuDeMan
消息的存储机制 不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,并且如果可以,持久化的消息也会在内存中保存一个备份,这样就可以提高一定的性能,当内存吃紧的时候会从内存中清除。非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存
2019-05-29T10:45:00Z
2019-05-29T10:45:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】消息的存储机制 不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,并且如果可以,持久化的消息也会在内存中保存一个备份,这样就可以提高一定的性能,当内存吃紧的时候会从内存中清除。非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存 <a href="https://www.cnblogs.com/Joe-Go/p/10940112.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10914390.html
RabbitMQ生产者发送消息确认 - AoTuDeMan
在使用RabbitMQ的时候,可以通过消息的持久化操作来解决因为服务器的异常崩溃而导致的消息丢失,除此之外,我们还会遇到一个问题,当消息的生产者将消息发送出去以后,消息到底有没有到达服务器呢?如果不进行特殊的配置,默认情况下发送消息的操作是不会返回任何消息给生产者的,也就是默认情况下是不知道消息有没
2019-05-24T00:19:00Z
2019-05-24T00:19:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】在使用RabbitMQ的时候,可以通过消息的持久化操作来解决因为服务器的异常崩溃而导致的消息丢失,除此之外,我们还会遇到一个问题,当消息的生产者将消息发送出去以后,消息到底有没有到达服务器呢?如果不进行特殊的配置,默认情况下发送消息的操作是不会返回任何消息给生产者的,也就是默认情况下是不知道消息有没 <a href="https://www.cnblogs.com/Joe-Go/p/10914390.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10907944.html
RabbitMQ消息和队列的TTL以及死信队列和延迟队列 - AoTuDeMan
TTL:Time To Live的简称,即过期时间。RabbitMQ可以对消息和队列设置TTL。 设置消息的TTL 目前有两种方法设置消息的TTL,第一种方法是通过队列的属性设置,队列中的所有消息都有相同的过期时间。第二种方法是对消息本身进行单独设置,每条消息的TTL可以不同。如果两种方法一起使用那
2019-05-22T11:12:00Z
2019-05-22T11:12:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】TTL:Time To Live的简称,即过期时间。RabbitMQ可以对消息和队列设置TTL。 设置消息的TTL 目前有两种方法设置消息的TTL,第一种方法是通过队列的属性设置,队列中的所有消息都有相同的过期时间。第二种方法是对消息本身进行单独设置,每条消息的TTL可以不同。如果两种方法一起使用那 <a href="https://www.cnblogs.com/Joe-Go/p/10907944.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10896247.html
RabbitMQ提升消息可靠性的方法 - AoTuDeMan
mandatory参数 当mandatory参数设置为true的时候,交换器无法根据自身的类型和路由键找到一个符合条件的队列,那么RabbitMQ会调用Basic.Return命令将消息返回给生产者。当mandatory参数设置为false时,出现上述情形,则消息直接被丢弃。 生产者是如何获取到没有
2019-05-21T00:18:00Z
2019-05-21T00:18:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】mandatory参数 当mandatory参数设置为true的时候,交换器无法根据自身的类型和路由键找到一个符合条件的队列,那么RabbitMQ会调用Basic.Return命令将消息返回给生产者。当mandatory参数设置为false时,出现上述情形,则消息直接被丢弃。 生产者是如何获取到没有 <a href="https://www.cnblogs.com/Joe-Go/p/10896247.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10858760.html
RabbitMQ入门 - AoTuDeMan
概念介绍 RabbitMQ整体上可以看做是一个生产者和消费者模型,主要负责接收、存储和转发消息。 生产者和消费者 Producer:生产者,就是投递消息的一方。 生产者创建消息,然后发布到RabbitMQ中,消息一般可以包含两个部分:消息体和标签(Label)。消息体也可以称之为payload,在实
2019-05-14T12:00:00Z
2019-05-14T12:00:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】概念介绍 RabbitMQ整体上可以看做是一个生产者和消费者模型,主要负责接收、存储和转发消息。 生产者和消费者 Producer:生产者,就是投递消息的一方。 生产者创建消息,然后发布到RabbitMQ中,消息一般可以包含两个部分:消息体和标签(Label)。消息体也可以称之为payload,在实 <a href="https://www.cnblogs.com/Joe-Go/p/10858760.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10858647.html
AMQP协议 - AoTuDeMan
定义 AMQP:Advanced Message Queuing Protocol,高级消息协议。 RabbitMQ就是AMQP协议的erlang实现,AMQP的模型架构和RabbitMQ的模型架构是一样的,生产者将消息送给交换器,交换器和队列绑定。当生产者发送消息时所携带的RoutingKey与绑
2019-05-13T11:53:00Z
2019-05-13T11:53:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】定义 AMQP:Advanced Message Queuing Protocol,高级消息协议。 RabbitMQ就是AMQP协议的erlang实现,AMQP的模型架构和RabbitMQ的模型架构是一样的,生产者将消息送给交换器,交换器和队列绑定。当生产者发送消息时所携带的RoutingKey与绑 <a href="https://www.cnblogs.com/Joe-Go/p/10858647.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10830643.html
springboot使用maven打包实现resources分离和实现lib、resources分离 - AoTuDeMan
jar包分离resources文件夹 修改pom.xml文件 上述执行打包后,会在target目录下生成jar包和resources文件夹,将jar包和resources文件夹复制到同一目录下。 执行运行jar包命令:java -jar xxx.jar 即可。 jar包分离lib和resources
2019-05-08T03:10:00Z
2019-05-08T03:10:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】jar包分离resources文件夹 修改pom.xml文件 上述执行打包后,会在target目录下生成jar包和resources文件夹,将jar包和resources文件夹复制到同一目录下。 执行运行jar包命令:java -jar xxx.jar 即可。 jar包分离lib和resources <a href="https://www.cnblogs.com/Joe-Go/p/10830643.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10726006.html
shell脚本连接mongodb数据库并对数据进行处理 - AoTuDeMan
shell定义 shell百度百科是这样解释的:shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。 基本上shell分为两大类: (1)图形界面shell(Gra
2019-04-19T00:42:00Z
2019-04-19T00:42:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】shell定义 shell百度百科是这样解释的:shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。 基本上shell分为两大类: (1)图形界面shell(Gra <a href="https://www.cnblogs.com/Joe-Go/p/10726006.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10497115.html
红黑树概念、TreeMap的插入以及旋转的详细解析(图解) - AoTuDeMan
前言 网上有很多红黑树的插入解析,LZ也看了很多,在看着这些文章结合着源码看,总感觉没有get到重点,http://www.cnblogs.com/xrq730/p/6867924.html这篇文章讲述得很好,LZ也是借助这篇文章(文中很多概念性的地方都是复制这篇文章),了解了红黑树的插入旋转,只是
2019-03-11T06:59:00Z
2019-03-11T06:59:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】前言 网上有很多红黑树的插入解析,LZ也看了很多,在看着这些文章结合着源码看,总感觉没有get到重点,http://www.cnblogs.com/xrq730/p/6867924.html这篇文章讲述得很好,LZ也是借助这篇文章(文中很多概念性的地方都是复制这篇文章),了解了红黑树的插入旋转,只是 <a href="https://www.cnblogs.com/Joe-Go/p/10497115.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10492058.html
Springboot整合mybatis、Redis、Druid(亲测) - AoTuDeMan
话不多说,直接开始,这里就不介绍怎么创建Springboot项目了,百度一下,多的是,先来一张项目的结构图: 安装Redis 网上很多安装教程,这里就不再赘述了,我安装的是Redis 3.2.100 windows版本 pom.xml application.yml 这里我使用的是yml格式,个人比
2019-03-07T12:26:00Z
2019-03-07T12:26:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】话不多说,直接开始,这里就不介绍怎么创建Springboot项目了,百度一下,多的是,先来一张项目的结构图: 安装Redis 网上很多安装教程,这里就不再赘述了,我安装的是Redis 3.2.100 windows版本 pom.xml application.yml 这里我使用的是yml格式,个人比 <a href="https://www.cnblogs.com/Joe-Go/p/10492058.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10419573.html
ArrayList在循环过程中删除中出现的问题 - AoTuDeMan
前言 之前搜索面试题的时候,出现了一个题:一个ArrayList在循环过程中删除,会不会出问题,为什么?心里想的答案是肯定会有问题但是又不知道是为什么,在搜索到答案后,发现里面其实并不简单,所以专门写篇文章研究一下。 for循环正向删除 先看示例,再解析原因: 运行后,输出结果: 发现,相邻的字符串
2019-02-25T07:22:00Z
2019-02-25T07:22:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】前言 之前搜索面试题的时候,出现了一个题:一个ArrayList在循环过程中删除,会不会出问题,为什么?心里想的答案是肯定会有问题但是又不知道是为什么,在搜索到答案后,发现里面其实并不简单,所以专门写篇文章研究一下。 for循环正向删除 先看示例,再解析原因: 运行后,输出结果: 发现,相邻的字符串 <a href="https://www.cnblogs.com/Joe-Go/p/10419573.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10401784.html
HashMap - AoTuDeMan
哈希表 在介绍HashMap之前,先介绍一下哈希表的概念。 哈希表(Hash table,也叫做散列表),是根据关键码值(Key Value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录
2019-02-19T13:32:00Z
2019-02-19T13:32:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】哈希表 在介绍HashMap之前,先介绍一下哈希表的概念。 哈希表(Hash table,也叫做散列表),是根据关键码值(Key Value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录 <a href="https://www.cnblogs.com/Joe-Go/p/10401784.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10396661.html
LinkedList - AoTuDeMan
初识LinkedList LinkedList是基于链表实现的,所以先来说明一下链表的概念。 链表:链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据之外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有
2019-02-18T13:14:00Z
2019-02-18T13:14:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】初识LinkedList LinkedList是基于链表实现的,所以先来说明一下链表的概念。 链表:链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据之外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有 <a href="https://www.cnblogs.com/Joe-Go/p/10396661.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10382735.html
ArrayList - AoTuDeMan
前言 集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是对改数据进行如何的存储,集合的作用就是以一定的方式组织、存储数据。 对于集合,我认为比较关心的点有四个: 1.是否允许空 2.是否允许重复数据 3.是否有序,有序的意思就是读取数据的顺序和存放数据的顺序是否一致 4.是否线程安全
2019-02-15T06:32:00Z
2019-02-15T06:32:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】前言 集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是对改数据进行如何的存储,集合的作用就是以一定的方式组织、存储数据。 对于集合,我认为比较关心的点有四个: 1.是否允许空 2.是否允许重复数据 3.是否有序,有序的意思就是读取数据的顺序和存放数据的顺序是否一致 4.是否线程安全 <a href="https://www.cnblogs.com/Joe-Go/p/10382735.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Joe-Go/p/10314907.html
Spring----监听器容器 - AoTuDeMan
消息监听器容器是一个用于查看JMS目标等待消息到达的特殊的bean,一旦消息到达它就可以获取到消息,并通过调用onMessage方法将消息传递一个MessageListener实现。Spring中消息监听器容器的类型如下: ❤ SimpleMessageListenerContainer:最简单的消
2019-01-24T07:47:00Z
2019-01-24T07:47:00Z
AoTuDeMan
https://www.cnblogs.com/Joe-Go/
【摘要】消息监听器容器是一个用于查看JMS目标等待消息到达的特殊的bean,一旦消息到达它就可以获取到消息,并通过调用onMessage方法将消息传递一个MessageListener实现。Spring中消息监听器容器的类型如下: ❤ SimpleMessageListenerContainer:最简单的消 <a href="https://www.cnblogs.com/Joe-Go/p/10314907.html" target="_blank">阅读全文</a>