自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

外星喵的博客

喵了个咪的~~

  • 博客(18)
  • 资源 (5)
  • 收藏
  • 关注

原创 Redis实现分布式缓存

介绍缓存是就是建立在内存之上的,内存天然就支撑高并发。而数据库查询是走硬盘的,内存的访问速度比内存快很多,通常来说是内存的访问速度是纳秒级的,而硬盘的访问速度是微秒级的,相差了 10 万倍左右。由于redis缓存数据库的读写都是在内存中,所以它的性能才会高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,要把内存中的数据存储到磁盘,以便缓存服务器重启之后,还能够从磁盘中恢复原有的数据,这个过程就是 Redis 的数据持久化。这也是 Redis 区别于其他缓存数据库的优点之一(比如 Mem

2021-06-25 00:01:53 2602 10

转载 程序员的职业规划

经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我,我现在成长的非常慢所以又想跳槽了,我看不到公司的发展前景好迷茫,其实这一切的困惑都来源于没有做好职业规划或者你根本就没有职业规划过。 那今天我就从以下几个话题和大家分享下我所理解的职业规划 Tips ,也欢迎大家踊跃提问。 为什么要做职业规划? 我们先聊聊第一个话题,为什么要做职业规划? 首先,我们要知道职业规划是什么,也就是如何持续选择适合自己发展的工作的过程。 职业规划其实就是对职业生涯乃至人生进行持...

2021-06-23 20:32:51 4290 7

原创 分布式系统之Raft算法

介绍Raft是一种为了管理日志复制的分布式一致性算法。Raft 出现之前,Paxos 一直是分布式一致性算法的标准。Paxos 难以理解,更难以实现。Raft 的设计目标是简化 Paxos,使得算法既容易理解,也容易实现。Paxos 和 Raft 都是分布式一致性算法,这个过程如同投票选举领袖(Leader),参选者(Candidate)需要说服大多数投票者(Follower)投票给他,一旦选举出领袖,就由领袖发号施令。Paxos 和 Raft 的区别在于选举的具体过程不同。Raft 可以解决分布式 C

2021-06-22 20:23:01 1052 3

原创 分布式ID算法

介绍什么是分布式ID算法就像每个人都对应一个身份证一样,每条数据都对应一个ID,所以ID是数据的唯一标识,传统的做法是利用自增ID创建每条数据的唯一标识。但是随着数据量越来越大,数据库压力越来越大,需要对数据进行分库分表甚至转移到到多台机器上,此时每个表中的数据都会按自己的节奏进行自增,就会出现ID冲突的情况。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做分布式ID,或全局ID,而这个机制就是分布式ID算法。分布式ID的意义业务量小于500W或数据容量小于2G的时候单独一个my

2021-06-19 21:19:55 791 6

原创 redis笔记

Redis是一个key-value存储系统,它支持的value类型相对较多,包括string、list、set和zset,这些数据都支持push/pop/add/remove及交并补等操作,而且这些操作都是原子性的,在此基础上,redis支持各种不同方式的排序。为了保证效率,数据是缓存在内存中的,Redis会周期性的把数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了需要 Redis 深度笔记 PDF 版的,添加小助理 vx:bj070701 即可获取免费下载方式!PART1:R

2021-06-15 22:38:13 364 8

原创 分布式系统之ZAB协议

ZAB介绍ZAB(Zookeeper Atomic Broadcast) 协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各副本之间数据的一致性。尽管 ZAB 不是 Paxos 的实现,但是 ZAB 也参考了一些 Paxos 的一些设计思想,比如:leader 向 follows 提出提案(proposal)lea

2021-06-14 00:00:55 571 10

原创 分布式系统之paxos算法

文章目录paxos介绍拜占庭将军问题算法原理协议过程举个例子paxos介绍Paxos 算法是莱斯利·兰伯特(英语:Leslie Lamport)于 1990 年提出的一种基于消息传递且具有高度容错特性的共识(consensus)算法。Paxos 算法所要解决的问题是分布式共识性问题,即一个分布式系统中的各个进程如何就某个值(决议)通过共识达成一致。但是Paxos 常被误称为“一致性算法”,而**一致性(consistency)和共识(consensus)**其实是两个概念。Paxos 实际上是一个共识

2021-06-13 23:24:26 972

原创 分布式理论

分布式系统介绍分布式系统是支持分布式处理的软件系统,是在多个计算机上执行任务并借由互联网络的进行通信和协调的系统。包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统分布式数据库系统等。其拥有的特点如下:分布性  分布式系统中的多台计算机都会在空间中随意分布,同时,机器的分布情况也会随时变动。对等性  分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有计算机节点都是对等的,副本指的是分布式系统对数据和服务提供的一种冗余方式

2021-06-13 21:48:31 316 2

原创 缓存淘汰算法LRU&LFU

文章目录LRU(The Least Recently Used,最近最久未使用算法)介绍Java实现第一种:使用LinkedHashMap第二种:双链表+hashmapLFU(Least Frequently Used ,最近最少使用算法)介绍Java代码实现定义Node节点定义LFU类总结LRU(The Least Recently Used,最近最久未使用算法)介绍LRU算法的思想是:如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最久没有访问的

2021-06-13 17:56:44 410

原创 分布式缓存面临的常见问题及其解决方案

文章目录一、缓存穿透解决方案方案1:缓存空数据方案2:验证拦截方案3:使用布隆过滤器二、缓存击穿解决方案方案1:设置热点数据永不过期方案2:应用级别锁控制并发方案3:使用分布式锁三、缓存雪崩解决方案方案1:高可用缓存方案2:缓存降级(临时支持)方案3:Redis 备份和快速预热四、缓存与数据库双写时的数据一致性解决方案一、缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起 id 为-1 的数据或者特别大的不存在的数据。有可能是黑客利用漏洞攻击从而去压垮应用的数据库。解决方案对

2021-06-12 15:22:24 933

原创 分治算法详解

分治算法介绍分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。基本原理当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再

2021-06-11 23:07:23 6524 5

原创 KMP算法

文章目录什么是KMP?KMP算法原理KMP算法的next数组KMP的Java代码实现KMP的时间复杂度什么是KMP?KMP全称为Knuth Morris Pratt算法,这个算法由 Donald Knuth、Vaughan Pratt、James H. Morris 三人于 1977 年联合发表,故取这 3 人的姓氏命名此算法。KMP是一种高效的字符串匹配算法,用来在主字符串中查找模式字符串的位置(比如在**"hello,world"主串中查找"world"模式串**的位置)。KMP算法原理我们先拿

2021-06-11 14:16:07 282 4

原创 常用的限流算法

在衡量Web系统性能的指标中,最重要的参数是QPS,它表示系统每秒最多能够处理的请求数量,当存在需要处理的流量(Query数)使得系统即使以极限QPS处理也无法在短时间内处理完所有流量,则称这个段时间内系统处于承压状态。

2021-06-10 19:47:09 906 8

原创 常用的加密算法

文章目录加密算法分类加密算法的应用对称加密算法实现DES介绍Java代码实现:IDEA介绍Java代码实现不可逆加密算法MD5介绍Java代码实现SHA1介绍Java代码实现HMAC介绍Java代码实现非对称加密RSA介绍Java代码实现ECC介绍Java代码实现加密算法分类加密算法通常分为三类:对称加密指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密效率高且易于实现。不可逆加密不可逆加密算法的特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有同样输入的输入数据

2021-06-09 22:07:57 1297 7

转载 总结了5W字的Java后端面经

SpringSpring框架的七大模块Spring Core:框架的最基础部分,提供 IoC 容器,对 bean 进行管理。Spring Context:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。Spring DAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。Spring ORM:提供了JPA、JDO、Hibernate、MyBatis 等ORM映射层.Spring AOP:集成了所有AOP功能Spring Web:提供了基础的 We

2021-06-08 19:15:28 429 1

原创 Java本地方法调用

JNI介绍JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java 1.1 开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操

2021-06-08 15:09:29 1604 5

原创 Java代码的执行原理

JVM字节码执行引擎JVM字节码执行引擎概述所谓的「虚拟机字节码执行引擎」其实就是 JVM 根据 Class 文件中给出的字节码指令,基于栈解释器的一种执行机制。通俗点来说,也就是 JVM 解析字节码指令,输出运行结果的一个过程。接下来我们详细看看这部分内容。栈帧栈帧的基本概念在 Java 中,一个栈帧对应一个方法调用,方法中需涉及到的局部变量、操作数,返回地址等都存放在栈帧中的。每个方法对应的栈帧大小在编译后基本已经确定了,方法中需要多大的局部变量表,多深的操作数栈等信息早以被写入方法的 Co

2021-06-06 12:09:45 946 3

原创 JVM垃圾回收机制深入解析

垃圾回收介绍Java 语言的可移植性就是建立在 JVM 的基础之上的,任何平台只要装有针对于该平台的 Java 虚拟机,字节码文件(.class)就可以在该平台上运行,这就是“一次编译,多次运行”。除此之外,作为 Java 语言最重要的特性之一的自动垃圾回收机制,也是基于 JVM 实现的。在 JVM 进行垃圾回收之前,首先就是判断哪些对象是垃圾,也就是说,要判断哪些对象是可以被销毁的,其占有的空间是可以被回收的。根据 JVM 的架构划分,我们知道, 在 Java 内存模型中,几乎所有的对象实例都在堆中存

2021-06-01 20:21:27 997 1

C++ 6.0安装包(含安装教程).zip

C++ 6.0安装包(含安装教程)

2021-06-16

hutool开源的jjava工具类项目

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当; Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

2021-06-16

仿天猫商城开发的web项目源码

一个开源的仿天猫商城开发的web项目源码

2021-06-16

3DMGAME-GPU.Z.v2.5.zip

GPU-Z是一款显卡识别工具,绿色免安装(可选安装),界面直观,运行后即可显示GPU核心,以及运行频率、带宽、传感器信息等。

2021-04-21

非常实用的mysql优化规则

非常实用的mysql优化规则,问题:,若是能够恰当的使用sql规则,便能极大提高系统的效率。那么如何实现sql语句和表的优化呢?

2018-03-20

空空如也

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

TA关注的人

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