自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 String类型数据结构内存分析

1、redis中字符串类型的结构:redis构建了一种名为简单动态字符串(simple dynamic string SDS)的数据抽象类型,默认字符串都是使用这种数据结构保存。整体结构如下:struct sdshdr{ //记录buf数组中已使用的字节的数量,等于SDS所保存字符串的长度 int 占用四字节 int len; //记录buf数组中未使用的字节数量 int占用4字节 int free; //字节数组,用户保存字符串; //为了表示字节数组的结束,

2021-12-22 11:29:20 1006

原创 redis哨兵机制

哨兵机制:主要任务监控,选主和通知,运行在特殊模式下的redis进程。1、哨兵基本流程监控就是哨兵周期性的给主从库发送ping命令,如果在规定时间没有响应,就会将该实例标识为下线状态,如果是主库,就标识为主库下线,开始自动切换主库。选主,主库挂了之后,哨兵从多个从库中按照规则选择。通知,选主完成之后将主库链接信息同步给其余从库。整体流程如图:2、主观下线和客观下线主观下线: 哨兵进程使用ping命令检测自己和主从库的网络链接情况,如果ping超时,会将该机器标识为主观下线。客观下线: 当标识主观

2021-12-20 15:40:58 892

原创 redis主从库

redis通过AOF和RDB完成了对数据可靠性的保障,也提供主从库模式应对服务高可用的需求。整体如图所示:读操作,主从库都可以接收客户端请求。写操作只有主库能够执行,然后将写操作同步给从库。1、主从库数据如何同步a、通过命令:replicaof(Redis 5.0之前使用slaveof)形成主库和从库的关系。过程如图所示:在实例:172.16.19.5上执行命令 replicaof 172.16.19.3 6379 会将该实例变成主实例的从库。让后经过三个阶段完成第一次同步。b、第一阶段:主从

2021-12-13 15:38:40 1292

原创 redis持久化处理

redis数据持久化主要有两大机制,AOF日志和RDB快照。1、AOF日志实现:和数据库日志(写前日志,记录修改后得数据)逻辑相反,AOF是写后日志,就是先执行命令,将数据写入内存然后再记录日志(记录redis收到得每一条命令),如图所示:1.1、AOF优点: redis为了避免额外得检查开销,在记录日志得时候不会校验语法,所以先执行命令,再记录日志,而且不会阻塞当前线程。1.2、AOF风险有两点: 1、就是执行完命令还没记录日志redis就宕机了,会导致当前数据无法恢复。2、AOF避免了对当前命

2021-12-08 18:03:31 375

原创 tomcat启动流程

1、通过startup.sh脚本调用catalina.sh如截图代码:2、通过catalina.sh脚本调用tomcat启动类:BootStrap.java的start方法3、在start方法中判断类加载器是否已经创建,如果没有创建调用init()方法初始化类加载器,并创建java.lang.ClassLoader的子类对象(org.apache.catalina.startup.Catalina)4、然后执行Catalina对象的start方法(通过反射),如图所示:5、创建digester

2021-12-06 17:24:26 1044

原创 redis知识图谱概览

参考学习:极客时间-redis开篇词

2021-12-06 17:16:49 114

原创 redis单线程模式

1、redis单线程指的是:Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。**2、多线程开销:**共享资源的并发访问控制问题会导致额外得开销为何系统吞吐率没有根据线程增加而增加:只是简单地采用一个粗粒度互斥锁,就会出现不理想的结果:即使增加了线程,大部分线程也在等待获取访问共享资源的互斥锁,并行变串行,系统吞吐率并没有随着线程的增加而增加。3、

2021-12-06 17:00:01 2017

原创 reids数据结构学习总结

1、键和值用什么结构组织?Redis 使用了一个哈希表来保存所有键值对。因为这个哈希表保存了所有的键值对,所以,我也把它称为全局哈希表。(O(1) 的时间复杂度来快速查找到键值对)如图所示:2、为什么哈希表操作变慢了?(哈希表的冲突问题和 rehash 可能带来的操作阻塞。)2.1、链式哈希(解决Hash冲突)就是指同一个哈希桶中的多个元素用一个链表来保存,它们之间依次用指针连接。链表元素只能通过一个节点一个节点一次查找,如果链过长,查询到对应key的时间过长。2.2、解决链表过长问题,对has

2021-11-25 16:34:08 1207

原创 tomcat建立tcp链接流程

2021-06-07 19:20:00 542 1

原创 Linux配置多nameserver导致DNS问题

问题现象1、请求响应时间很长,无业务逻辑也很慢;2、启动时间很长,很难重启;3、通过arthas(阿里云开源代码分析工具)跟踪定位发现:org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.connector.Request request, org.apache.catalina.connector.Response response)该行代码运行时间超过10s。解决问题1、StandardHostVal

2020-07-07 15:17:46 2434

原创 分布式skywalking安装部署总结

1、服务器配置服务器规划2 skywalking服务端安装2.1 zookeeper安装2.1.1 jdk安装 在服务器上安装jdk1.8,由于系统模板已经集成jdk 1.8.0_221,这里不在单独安装2.1.2 获取zookeeper安装程序将安装程序分别上传到zookeeper服务器的/workspaces目录下wget http://mirror.bit.edu.c...

2020-01-16 17:31:21 3817 7

原创 drools规则引擎分析研究

3 规则引擎的优点:3.1 使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。3.2 分离商业决策者的商业决策逻辑和应用开发者的技术决策。3.3 能有效的提高实现复杂逻辑的代码的可维护性。3.4 在开发期间或部署后方便修复代码缺陷。3.5 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内。3.6 符合组织对敏捷或迭代开发过程的使用。4 R...

2019-05-28 15:35:48 979

原创 阿里云消息队列mq(消费者)如何集成springboot,并能使用services

创建一个消息队列的数据库维护表:CREATE TABLE `consumer_local` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `version` bigint(20) NOT NULL, `topic` varchar(30) NOT NULL COMMENT '消费者所属的主题', `consumer_id` varch...

2018-07-04 17:14:21 3559 1

原创 js计算器封装

2018-05-09 14:10:34 1147 1

原创 linux安装Mysql具体步骤

安装mysql过程分享和参考笔记

2017-06-23 17:23:15 521

原创 python学习笔记-turtle类库实例

小海龟实现简单实例

2017-05-15 14:05:09 1081

原创 linux学习笔记系列-文件权限

linux文件权限修改相关指令。

2017-04-28 15:29:59 489

原创 linux学习笔记系列-文件操作

linux文件相关命令操作。

2017-04-28 11:33:04 494

原创 linux学习笔记系列-用户

linux关于用户创建,销毁,更改,冻结,解冻等操作。

2017-04-27 14:01:18 1774

原创 分数计算问题和答案

题目内容: 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。 这个类的构造函数是:Fraction(int a, int b) 构造一个a/b的分数。这个类要提供以下的功能:double toDouble(); 将分数转换为double Fraction plus(Fraction r); 将自己的分数和r的分数相加,产生一个

2017-04-24 18:27:45 3086

原创 springboot测试环境中为什么会将mongodb的数据自动存储到test表中

今天学习进入到mongodb使用springdata支持进行简单的增删改查部分,在使用springboot进行测试的时候,有一个很神奇的问题,在程序中存入数据,但在mongodb中我指定的数据库中却找不到数据,在mongodb指定的数据库中存入数据,在程序中也查不到。但很神奇的是,在程序中能够正常存取,还不会报错。感觉简直郁闷到吐血的程度。代码如下: springboot中的配置文件:spring

2017-04-17 16:17:55 2856 9

原创 基于spring注解切面的简单实现

首先定义一个注解:package com.permission.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Targe

2017-04-14 17:19:37 6049

原创 针对一些简单排序的源码

简单算法代码实现

2017-04-11 20:31:58 346

原创 对javascript封装,继承的理解

javascript对象实现的隐藏和调用

2017-02-14 10:43:40 322

java并发基础学习笔记

想对并发有一定了解的人群

2021-02-26

空空如也

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

TA关注的人

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