weixin_44692700的博客

私信 关注
程大帅气
码龄2年

此人很帅,什么都没有写

  • 2,352
    被访问量
  • 20
    原创文章
  • 364,902
    作者排名
  • 13
    粉丝数量
  • 于 2019-02-26 加入CSDN
获得成就
  • 获得7次点赞
  • 内容获得1次评论
  • 获得3次收藏
荣誉勋章
兴趣领域
  • #后端
    #分布式#Redis#Spring#架构#Elasticsearch#Java#MySQL#Spring Boot
TA的专栏
  • xxl-job
  • 分布式
  • java
    2篇
  • 算法
    6篇
  • 数据库
    3篇
  • 技术总结
    6篇
  • spring
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

中间件之Redis应用场景及常见问题

Redis应用场景及常见问题一、数据一致性1.缓存使用场景2.一致性问题(1)删除/更新(2)先数据库后缓存(3)先缓存后数据库二、高并发问题1.热点数据发现(1)客户端(2)代理层(3)服务层(4)机器层面2.缓存雪崩(1)什么是缓存雪崩?(2)解决方案3. 缓存穿透(1)经典面试题一、数据一致性1.缓存使用场景针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。使用Redis作为缓存的流程如果数据在Redis中存在,客户端可以直接从Redis中拿到数据,不用直接访问数据库。客
原创
51阅读
0评论
0点赞
发布博客于 2 月前

中间件之redis高级特性Lua脚本、内存回收策略、持久化机制

中间件之redis高级特性Lua脚本一、Lua脚本1.认识Lua脚本2.简单使用3.缓存lua脚本4.小结二、内存回收1.定期删除2.淘汰策略三、持久化机制1.RDB触发RDB优势与劣势2.AOF配置AOF优势与劣势3.小结一、Lua脚本1.认识Lua脚本使用Lua执行Redis命令的好处:一次发送多个命令,减少网络开销Redis会将整个脚本作为一个整体执行,不会被其他请求打断,保证原子性对于复杂的组合命令,我们可以放在文件/bean/内存中,实现复用。redis > eval lu
原创
36阅读
0评论
0点赞
发布博客于 3 月前

中间件之Redis高级特性发布订阅、事务

Redis高级特性一、发布订阅1.订阅频道2.按规则(Pattern)订阅频道3.小结二、Redis事务1.简单使用2.watch命令3.执行事务场景一、发布订阅前面说List队列的rpush和blpop可以实现消息队列(队尾进队头出),没有任何元素可以弹出时,连接会被阻塞。但是基于list实现的消息队列,不支持一对多的消息分发,相当于只有一个消费者1.订阅频道消息的生产者和消费者是不同的客户端,连接到同一个Redis服务。通过channe频道l将生产者和消费者关联起来。订阅者可以订阅一个或多个
原创
35阅读
1评论
0点赞
发布博客于 3 月前

中间件之Redis数据类型的基本命令及应用场景

Redis数据类型及应用场景一、Redis定位与特性1.SQL与NoSQL一、Redis定位与特性1.SQL与NoSQL在绝大多数情况,我们会优先考虑使用关系型数据库来存储业务数据,比如SQLServer、Oracle、MySQL等等。关系型数据库特点它以表格的形式,基于行存储数据,是一个二维模式它存储的是结构化数据,数据存储有固定的模式(schema),数据需要适应表结构表与表之间存在关联关系(Relationship)大部分关系型数据库都支持SQL的操作。支持复杂的关联查询通过支持事
原创
37阅读
0评论
0点赞
发布博客于 3 月前

xxl-job-2.2.0.zip

xxl-job-2.2.0源码
zip
发布资源于 3 月前

中间件之XXL-JOB的介绍及源码分析

XXL-JOB的使用及原理一、基本介绍1.Quartz的不足2.xxl-job特性二、简单使用1.快速启动2.路由策略3.运行模式4.阻塞处理策略5.子任务6.分片任务三、架构设计一、基本介绍1.Quartz的不足Quartz差不多有20年的历史,调度模型已经非常成熟,而且很容易集成到Spring中去,用来执行业务任务是一个很好的选择。但是还是会有一些问题,比如:调度逻辑(Scheduler)和任务耦合在同一个项目中,随着调度任务数量逐渐增多,同时任务逻辑逐渐加重,调度系统的整体性能会受到很大的
原创
984阅读
0评论
5点赞
发布博客于 3 月前

算法之数据结构基础(5)

目录一、二叉堆1、二叉堆的自我调整(1)插入(2)删除(3)构建二叉堆(4)小结2、二叉堆的代码实现(1)上浮(2)下沉(3)构建堆(4)小结一、二叉堆什么是二叉堆?二叉堆本质上是一种完全二叉树,它有两个类型:最大堆、最小堆。最大堆:最大堆的任何一个饥父节点的值,都大于或等于它左、右节点的值最小堆:最小堆的任何一个父节点的值都小于或等于它的左、右孩子节点的值。二叉堆的根节点叫做堆顶,最大堆的堆顶是整个堆中的最大元素。相反,最小堆的堆顶是整个堆中的最小元素。1、二叉堆的自我调整即把一个不符
原创
29阅读
0评论
0点赞
发布博客于 6 月前

算法之数据结构基础(4)

这里写目录标题一、遍历二叉树1、介绍2、遍历的种类二、深度优先遍历1、前序遍历2、中序遍历3、后序遍历4、代码实现一、遍历二叉树1、介绍在计算机程序中,遍历本身是一个线性操作。所以遍历一个拥有线性结构的如:数组、链表,是一件很简单的事情。而二叉树是非线性数据机构,遍历时需要将非线性关联的节点转换成一个线性的结构,进行遍历。不同的方式可以遍历出不同的顺序。2、遍历的种类从节点位置关系:前序遍历中序遍历后序遍历层序遍历从宏观角度来看分为两类:深度优先遍历(前序、中序、后序)广度优先
原创
48阅读
0评论
0点赞
发布博客于 6 月前

算法之数据结构基础(3)

目录一、回顾1、数组和链表2、栈和队列3、散列表二、树三、二叉树1、初识二叉树2、二叉树的结构(1)链式(2)数组3、二叉树的应用(1)查找(2)维持相对顺序一、回顾1、数组和链表数组定义:数组是有限个相同类型的变量所组成的有序集合物理存储方式(内存):顺序存储访问方式:随机访问时间复杂度:查找为O(1),插入、删除为O(n)链表定义:链表是一种链式数据结构,由若干个节点组成,每个节点指向下一节。物理存储方式(内存):随机存储访问方式:顺序访问时间复杂度:查找为O(n),插入、
原创
37阅读
0评论
1点赞
发布博客于 6 月前

算法之数据结构基础(2)

目录一、回顾1、什么是数组?2、什么是链表?3、结构二、栈1、入栈2、出栈三、队列1、入队2、出队3、循环队列四、哈希表1、写(put)2、哈希冲突3、读(get)4、扩容五、总结1、什么是栈?2、什么是队列?3、什么是哈希表?一、回顾1、什么是数组?数组是由有限个相同类型的变量所组成的有序集合,它的物理存储方式是顺序存储,访问方式是随机访问。利用下标查找数组元素的时间复杂度是O(1),中间插入、删除数组元素的时间复杂度是O(n)。2、什么是链表?链表是一种链式数据结构,由若干个节点组成,每
原创
39阅读
0评论
0点赞
发布博客于 7 月前

算法之数据结构基础(1)

目录一、数组介绍1、数组是什么?2、如何操作数组?(1)查(2)改(3)删(4)增(5)扩容(6)数组小结二、链表介绍1、链表是什么?2、如何操作链表?(1)查(2)改(3)增(4)删(5)小结三、总结一、数组介绍1、数组是什么?数组(Array),是有限个相同类型的变量所组成的有序集合,数组中每一个变量被称为元素。数组是最简单、常用的数据结构。特点:在内存中顺序存储,实现逻辑上的顺序表。数组的每个元素,都存储在各自的内存单元中,元素之间紧密排列,不能打乱元素的存储顺序,也不能跳过某个存储单元进行
原创
46阅读
0评论
1点赞
发布博客于 7 月前

Spring之实现SpringCloudHystrix

目录Hystrix断路器Hystrix的核心原理Hystrix是如何工作的呢?Hytrix熔断的原理以及请求代理的原理Hystrix的数据统计是采用的华东窗口计数器滑动窗口请求的代理用的AOPRxJavaHystrix断路器三种服务降级的策略熔断超时线程池/信号量。设置阈值限流SentinelHystrix的基本使用,配置、注解等。Hystrix的核心原理feign提供针对类级别的配置(自定义)可配置化的降级策略:根据不同的服务类型信号量/线程池、超时(默认1s)
原创
25阅读
0评论
0点赞
发布博客于 7 月前

Java并发编程之Semaphore

目录一、概念二、示例三、说明四、其他常用方法一、概念Semaphore令牌。是synchronized的加强版,作用是控制线程的并发数量。Semaphore是一个计数信号量,它的本质是一个共享锁。信号量维护了一个信号量许可集。线程通过调用acquire()来获取令牌/执行许可。当信号量中还有剩余可使用的令牌时,线程就能获取并且执行完毕后归还。信号量中没有可用令牌,线程必须等待,直到有别的线程释放(归还)令牌为止,线程可以通过release()来释放令牌。二、示例/** * @author c
原创
27阅读
0评论
0点赞
发布博客于 7 月前

算法之算法概述

目录一、算法概述1、算法和数据结构(1)什么是算法?(2)什么是数据结构?2、时间复杂度(1)执行次数(2)渐进时间复杂度3、空间复杂度(1)空间复杂度的计算(2)、时间与空间的取舍4、小结一、算法概述1、算法和数据结构(1)什么是算法?算法(algorithm)。在数学领域中,算法是用与解决某一类问题的公式和思想。在计算机科学领域中,算法是一系列程序指令,用于解决特定的运算和逻辑问题。从宏观上来看,数学和计算机领域的算法有很多相通之处。衡量算法的重要标准:时间复杂度、空间复杂度算法的应用场景
原创
50阅读
0评论
0点赞
发布博客于 7 月前

Spring之Spring Retry重试机制

目录一、概念二、注解介绍1、@EnableRetry2、@Retryable参数介绍(1)value(2)exclude(3)maxAttempts(4)backoff(5)delay(6)multiplier(7)maxDelay3、@Recover回调函数一、概念Srping提供了失败重试功能Spring Retry,在网络不稳定的情况下,避免调用外部接口失败导致流程中断。也可以结合SpringCloudHystrix熔断一起使用。Spring Retry提供了自定义重试、回调等等。二、注解介
原创
138阅读
0评论
0点赞
发布博客于 7 月前

Java并发编程之CountDownLatch

目录一、概念二、用法1、一等多2、多等一三、示例1、一等多2、多等一一、概念CountDownLatch简单理解为一个线程间的倒计时工具,可以使一个线程A在等待另外的一些子线程(B、C、D…)完成各自的工作后,A再进行工作。每当一个子线程执行完毕时,计数器就会减一,当计数器减为0时,主线程A再开始执行。二、用法1、一等多某一个线程开始阻塞,直至其他n个线程执行完毕,再唤醒。常用于多线程批量计算,多个线程计算的结果集统一插入数据库(计算过程中要考虑所用工具是否有并发问题)。//初始化一个
原创
31阅读
0评论
0点赞
发布博客于 7 月前

SQL之Oracle如何实现自增

目录一、sequence1、创建sequence2、使用sequence3、结合触发器使用sequence一、sequence在Oracle中sequence就是一个自增序列,每次取它时进行自增,类似于Mysql的自增主键。sequence与表没有关系。可以使用sequence在oracle中实现自增。1、创建sequencecreate sequence SEQ_IDminvalue 1 --序列最小值maxvalue 100000000 -- 序列最大值,设置为nomaxvalue时无最
原创
126阅读
0评论
0点赞
发布博客于 7 月前

SQL之Oracle视图学习总结

目录概念视图类别1、简单视图2、复杂视图3、连接视图4、只读视图5、check约束视图创建视图1、基本语法2、关键字说明3、一些规则示例1、基本语法示例2、关键字示例(1)force(2)with check option(3)with read only概念视图是基于一张表或多张表或者另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,这些表被称为基表。数据库中只在数据字典中存储
原创
51阅读
0评论
0点赞
发布博客于 7 月前

SQL之MySQL存储过程

TODO
原创
84阅读
0评论
0点赞
发布博客于 7 月前

Spring之Spring IoC时序图

Spring IoC加载时序图解析时序图大纲预览时序图大纲预览
原创
114阅读
0评论
0点赞
发布博客于 7 月前

互联网架构下的技术体现

互联网架构下的技术体现高可用设计手段负载均衡技术应用层负载热备多机房部署应用的可用性容错性自我保护能力监控高并发设计用户体验架构层面异步化架构冗余代码层面中间件层面的优化客户端层面的优化存储层面服务的幂等性锁单线程锁分布式锁高可用设计手段单点故障负载均衡技术硬件负载、F5、Netscalar软件负载、apach、nginx、lvs、Haproxy一个负载均衡服务器连接多台tomcat服务器F5、stantBy。心跳线nginx,lvs+keepalived(VRRP)
原创
46阅读
0评论
0点赞
发布博客于 8 月前
Spring框架总结(自看)
发布Blink于 1 年前
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
发布Blink于 2 年前
JDK8新特性之stream()
发布Blink于 2 年前
互联网公司会议观察
发布Blink于 2 年前