自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多个文件压缩并基于浏览器下载

多文件压缩上传

2024-03-14 09:27:02 120

原创 git分支开发梳理

分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的管理代码分支。

2023-07-21 14:27:53 428

转载 Redis分布式锁到底安全吗?

这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题。Redis 分布式锁的话题,很多文章已经写烂了,我为什么还要写这篇文章呢?因为我发现网上 99% 的文章,并没有把这个问题真正讲清楚。导致很多读者看了很多文章,依旧云里雾里。例如下面这些问题,你能清晰地回答上来吗? 基于 Redis 如何实现一个分布式锁? Redis 分布式锁真的安全吗? Redis 的 Redlock 有什么问题?一定安全吗? 业界争论 Redlock,到底在争论什么?哪种观点

2021-10-22 09:11:39 405

转载 redis为什么这么快

1 redis的数据时存储在内存中读取的时候属于纯内存操作,不需要进行磁盘的io,时间复杂度O(1)要实现高的并发性能,redis是不是要创建非常多的线程呢,恰恰相反,redis是单线程的。redis为什么是单线程的?官方解释说,因为单线程已经够用了,CPU 不是 redis 的瓶颈。Redis 的瓶颈最有可能是机器内存或者网络带宽。单线程为什么这么快?因为redis是基于内存操作的。2 redis是单线程的单线程有如下好处:不需要频繁创建和销毁线程单线程保证了系统没有线程的

2021-10-22 09:00:18 164

转载 redis分布式锁的8大坑

在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考。1 非原子操作使用redis的分布式锁,我们首先想到的可能是setNx命令。if(jedis.setnx(lockKey,val)==1){jedis.expire(lockKey,...

2021-10-22 08:56:37 427

转载 redis常见使用场景

1、缓存String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享例如:分布式Session<dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redi...

2021-10-22 08:54:27 65

转载 Cache工作原理及一致性

本文主要内容如下,基本涉及了Cache的概念,工作原理,以及保持一致性的入门内容。- 为什么需要 Cache -1.1 为什么需要 Cache我们首先从一张图来开始讲为什么需要 Cache。上图是 CPU 性能和 Memory 存储器访问性能的发展。我们可以看到,随着工艺和设计的演进,CPU 计算性能其实发生了翻天覆地的变化,但是DRAM存储性能的发展没有那么快。所以造成了一个问题,存储限制了计算的发展。容量与速度不可兼得。如何解决这个问...

2021-10-19 17:12:53 488

转载 ElasticSearch进阶之多域的搜索

我们在使用ElasticSearch真正进行搜索的时候其实很多时候并不是一个简单的term的搜索,而是多个域的组合,比如说我们可能会搜索一本书名为《Warand Peach》然后作者是”LeoTolstoy”的书。本文就来讲解一下ElasticSearch中对常见的多域搜索有哪些实现方法。简单实现像上面提到的这个例子,最简单的实现就是使用match语句来匹配每一个限制条件,然后用一个bool把它们combine起来,如下所示:我们知道bool语句中是match的内容越多,它的得分就越高,所以

2021-10-19 17:04:00 395

转载 Java类加载过程

一个Java类从被加载到虚拟机内存到被卸载出内存为止,生命周期一共包括如下几个阶段: 加载(Loading) 验证(Verfication) 准备(Preparation) 解析(Resolution) 初始化(Initialization) 使用(Using) 卸载(Unloading) 其中验证、准备、解析这个3个部分统称为链接(Linking)。image加载、验证、准备、初始化和卸载这5个阶段开始执行的顺序...

2021-10-19 16:58:22 63

转载 分布式环境下,互斥性与幂等性问题,分析与解决思路

随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。分布式系统由独立的服务器通过网络松散耦合组成。在这个系统中每个服务器都是一台独立的主机,服务器之间通过内部网络连接。分布式系统有以下几个特点: 可扩展性:可通过横向水平扩展提高系统的性能和吞吐量。

2021-10-19 16:52:53 157

转载 线程之间的通信

本文涉及到的知识点: thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 。 本文涉及代码:https://github.com/wingjay/HelloJava/blob/master/multi-thread/src/ForArticle.java下面我从几个例子作为切入点来讲解

2021-10-19 16:48:19 51

转载 MySql批量插入时,如何不插入重复的数据?

业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢?向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率看来这个问题不止我一个人苦恼过。解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了。几百万的数据,不可能查出来,做去重处理...

2021-06-15 15:10:04 248

转载 代理模式

转自:飞天小牛肉前文提到,动态代理机制使用了反射,Spring 中的 AOP 由于使用了动态代理,所以也相当于使用了反射机制。那么,代理是什么?动态代理又是什么?动态代理中是如何使用反射的?全文脉络思维导图如下:1. 常规编码方式在学习代理之前,先回顾以下我们的常规编码方式:所有interface类型的变量总是通过向上转型并指向某个实例的。1)首先,定义一个接口:publicinterfaceSmsService{Stringsend(Stringmessa...

2021-06-10 12:00:27 133

转载 InputSteam转String

InputSteam转String1、使用 InputStreamReader 和 StringBuilder (JDK) public class InputStream2String {publicstaticvoidmain(String[]args){ try { InputStream inputStream = n...

2021-06-10 11:32:53 220

空空如也

空空如也

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

TA关注的人

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