- 博客(158)
- 资源 (3)
- 问答 (8)
- 收藏
- 关注
原创 详解 Redis 队列 实现
Redis 的 List 数据结构可以用来实现普通的队列。生产者使用 LPUSH 或 RPUSH 命令将消息添加到列表的头部或尾部,消费者使用 LPOP 或 RPOP 命令从列表的头部或尾部取出消息。这种方式简单轻量,但缺少一些高级特性,如消息重试、持久化等。
2024-08-13 22:45:00 1718
原创 详解Redis 高可用的方式 Redis Cluster
故障节点的从节点竞选成为新主节点,其他节点更新槽映射与配置,客户端自动重定向。缺点 哨兵模式需要部署和配置额外的哨兵节点,增加了系统的复杂性,并且主节点发生故障后,新的主节点可能会有一段时间的数据不一致,影响数据的准确性。集群的端口:每个Redis集群节点需要打开两个TCP连接,一个用于客户端连接,另一个用于集群节点间通信,后者使用的是二进制协议。虽然Redis Cluster支持故障转移,但如果主节点和其所有从节点同时宕机,那么该节点的数据将会丢失,集群将不可用。
2024-08-10 10:00:00 1171
原创 详解Redis源码中的设计模式及设计思想
Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)、位图(bitmaps)、超日志(hyperloglogs)和地理空间(geospatial)索引半径。
2024-07-17 21:45:00 1285
原创 java.lang.OutOfMemoryError: WrappedJavaFileObject --idea启动项目内存溢出解决
java.lang.OutOfMemoryError
2024-04-18 10:56:41 866
原创 Java线程池实现原理详解
线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。
2024-02-22 09:59:03 645
原创 Elasticsearch 从入门到实战到精通(Docker版)
解决什么问题有关系型数据库MySQL 为什么还用全文搜索引擎(Elasticsearch/Solr)?MySQL 侧重数据存储,用like进行简单关键字搜索,但无法应对海量数据下各种复杂条件的查询。如果需要全文进行模糊搜索,MySQL性能是非常低的.例如如下场景: 在一张一亿数据量的手机详情表,搜索小米手机,如果用MySQL实现的话可能会这样写:> select * from phone where phone_brand like "%小米%"理论上是可以查到相关数据的,但是
2022-05-21 22:55:56 615
原创 Java并发之AQS原理详解
是什么概念AQS 的全称为(AbstractQueuedSynchronizer),即抽象队列同步器, 这个抽象类在java.util.concurrent.locks 包下面。(juc是JDK1.5之后,由 Doug Lea实现并引入。)public abstract class AbstractOwnableSynchronizer implements java.io.Serializable作用构建锁或其他同步组件的基础框架- Lock 包中的各种锁(如常见的 Reen
2021-06-20 17:13:59 243
原创 【Docker】Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制 allkeys-lru】详细教程!!!
前言本篇文章介绍了Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制allkeys-lru】的详细教程,希望对您有所帮助!redis.conf 文件配置下载官方安装包redis.conf链接: https://pan.baidu.com/s/1ML-8QNA9LWpcatf6mk25cA提取码: 3jgf复制这段内容后打开百度网盘手机App,操作更方便哦我修改的方式,统一先在redis.conf文件中修改好,然后把改后的整个redis.conf文件的内容复
2021-01-18 22:36:15 2520
原创 阿里巴巴编码规范技能认证考试心得与试题
前言现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。无规矩不成方圆,无规范难以协同,站在巨人的肩膀上,借鉴行业优秀经验总结,码出高效,码出质量。学习资料《Java开发手册》v1.5.0 华山版.pdf考试过程认证入口(需要费用9.9元): 阿里巴巴编码规范技能认证入口需要上传本人身份证正面照,使用的电脑摄像头需要正常,考试过程中全程摄像头进行监控;考试时间为90分钟;内容为50道选择题,满分100分(
2021-01-10 19:27:00 1390 11
原创 【萌姐讲底层原理】Arrays.sort & Collections.sort 底层原理
whereArrays和Collections 是JDK 中能实现排序的两个工具类,都来自java.util工具包whatArrays.sort 主要用于数组排序,包括基本类型的数组和对象数组。 Collections.sort 对List等集合类进行排序.底层实现(jdk1.8版本)Collections.sort 方法调用了list.sort方法public static <T extends Comparable<? super T>> void sort(
2020-12-27 19:13:09 1121 1
原创 高效读书的秘密
读书又快又好的秘密读书普遍的问题(大多数人)1.没目标或对目标理解有误2.慢3.从头到尾每个字读4.没内化和输出5.用听书取代读书高手读书观1. 原因和目标2. 读精华3. 输出倒逼输入4. 好书重复读5. 不同书不同力度读OKSSOKSS小结读书普遍的问题(大多数人)1.没目标或对目标理解有误正确做法:“我要读完这本书” 不是目标; 目标有2个方面:时间: 如我要什么时间看这本书,什么...
2019-09-10 12:58:10 694 6
转载 Angular 重大版本升级: 8.0 正式发布! 支持更多 Web 标准
Angular 8.0.0 版本正式发布了!8.0 是重大版本升级,整个平台,包括框架、Angular Material 和 CLI 都同步升级到了新版。Angular 8.0 版缩短了应用在现代浏览器上的启动时间,提供了用于访问 CLI 的新 API,并使 Angular 支持更多 Web 标准,追上了 Web 生态的前沿发展趋势。如何更新到 Angular 8.0.0 版本用户可以访问up...
2019-06-01 20:32:43 7217 3
转载 七年程序员生涯,我学到最重要的 6 个教训
身为开发者的你是否思考过这个问题:在编程过程中,到底什么才是最重要的?本文作者的编程生涯始于 2012,到今年正好 7 年的时间。面对“七年之痒”,作者带来了对编程的一些思考,希望能够对你有所帮助。时间如梭,不是吗?我的编程之旅始于 2012 年,当时我还只是个 C++ 编程实习生。说实话,我根本不知道自己在做什么。即使是到了现在,这种状况依然没有改变。不过,在这个过程中,我确实学到了很多东西...
2019-05-31 10:00:17 651 6
转载 Spring Boot 最流行的 16 条实践解读!
Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列出了最佳实践,排名不分先后。欢迎胖友在文末留言,分享你的 S...
2019-05-29 16:23:29 175 3
转载 阿里巴巴程序员常用的 15 款开发者工具
从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:工具名称和简介使用...
2019-05-28 15:12:04 385 3
转载 麻了,不要再动不动就BeanUtil.copyProperties
小结一下,对象在不同层之间进行转换映射,很不建议使用BeanUtil.copyProperties这种方式,更加推荐使用原生的set, get方式,不容易出错。当然这不是将BeanUtil.copyProperties一棒子打死,毫无用武之地,在特定场景,比如方法内部对象的转换等影响小的范围还是很方便的,如果你有其他的想法,也可以留下你的想法,一起探讨交流。前言最近项目上要求升级一个工具包hutool的版本,以解决安全漏洞问题,这不升级还好,一升级反而捅出了更大的篓子,究竟是怎么回事呢?事件回顾。
2023-12-14 19:23:26 116
原创 cn.hutool.core.exceptions.DependencyException:You need to add dependency of ‘poi-ooxml‘....>=4.12
最终修改为:
2022-12-04 12:32:00 7496 3
原创 二分法 java两种实现方式
是什么概念二分法(Bisection method) 即一分为二的方法,又叫折半查找方法。把一组有序数列分为左右两部分,从这组数字的中间位置开始找:如果中间位置的数等于目标数,则直接返回;如果中间位置的数大于目标数,则从左边部分查找;如果小于目标数,则从右边部分查找;重复以上过程,直到找到满足条件的记录,使查找成功。场景:从一堆有序的数中,找出一个数;当数据量很大适宜采用该方法。前提 注意前提是 有序的数列思想分治复杂度时间复杂度:都是O(log2 N)空间
2022-05-02 18:04:15 2554
原创 深入理解开闭原则 及 Java代码应用
是什么定义在面向对象编程领域中,开闭原则 (The Open/Closed Principle, OCP) 规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。扩展这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。开闭原则的命名被应用在两种方式上。这两种方式都
2021-10-26 14:36:22 568 2
翻译 微服务架构之是什么?为什么? 怎么做?
作者:Jetinder Singh多年来,我们一直在构建系统并在这方面做得更好。这些年来出现了多种技术、架构模式和最佳实践。微服务是从领域驱动设计、持续交付、平台和基础设施自动化、可扩展系统、多语言编程和持久性领域中出现的架构模式之一。简而言之,什么是微服务架构?罗伯特·C·马丁创造了这个词 单一责任原则 它指出“将因相同原因而变化的事物聚集在一起,并将因不同原因而发生变化的事物分开”。微服务架构采用相同的方法并将其扩展到可以独立开发、部署和维护的松散耦合服务。这些服务中的每一个都负责离散任务,并且
2021-10-12 22:03:30 290 1
转载 [MySQL高级](一) EXPLAIN用法和结果分析
1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。➤ 通过EXPLAIN,我们可以分析出以下结果:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询➤ 使用方式如下:EXPLAIN +SQL语句EXPLAIN SELECT * FROM t1执行计划包含的信息2. 执行计划各字段含义2.1 idse
2021-08-25 18:24:03 446
翻译 aws s3 sync .. --部署到 Amazon S3 的新方法【翻译】
自从我开始在 Amazon S3 上托管这个站点以来,我一直在使用 middleman-s3_sync来完成将文件同步到存储桶的繁重工作。不幸的是,在此过程中,它停止了某些本应同步的文件。我试图成为一名优秀的OSS 公民并找到解决方法,但在深入研究中间人的内部结构后,我找不到问题所在。一种新方法需要一种部署站点的新方法,最近我转而使用亚马逊自己的aws cli实用程序。经过多年在工具方面几乎一无所获,亚马逊发布了自己的命令行实用程序,用于与 AWS 交互。最好的部分是它看起来非常好。这就.
2021-08-10 18:59:17 1367 1
翻译 Java 在 2021 年仍然重要吗?【翻译】
Java 在 2021 年仍然重要吗?Java 以不同的方式被广泛使用,尤其是在您可能经常使用的流行平台上,例如 Twitter、Google、Amazon、Spotify 和 YouTube。当技术存在多年后,它可能会显得无关紧要、缺乏竞争力,甚至对某些人来说已经过时。Java 的情况并非如此,它今年已经 26 岁了。Java 不再是过去式——它仍然非常流行,这让那些继续坚持 Java 是老式的想法的人继续感到惊讶。甚至最近的统计数据和研究表明,Java 仍然是最受欢迎、使用和喜爱的编程语言之一。但
2021-08-09 19:27:12 247 1
原创 【Java】Date LocalDate LocalDateTime三者的互换-UTC时区-Unsupported field: OffsetSeconds
public class DateUtils {//LocalDate 转为 Date public static Date asDate(LocalDate localDate){ return Date.from(localDate.asStartOfDay).atZone(ZoneId.of("UTC")).toInstant()); }//LocalDateTime 转为 Date public static Date asDate(LocalDateTime localDateTim
2021-08-08 11:12:35 4300 1
原创 过滤某个时间段的关键字【linux 命令 sed】
过滤某个时间段的关键字:sed -n '/2021-07-01 09/,/2021-07-01 11/p' 文件名 | grep "关键字”以上命令解释:-n抑制输出, p打印特定行的命令;逗号 ( ,)分隔的两个地址指定地址范围。地址范围匹配从第一个地址匹配的行开始,一直持续到第二个地址匹配;grep: 查找文件里符合条件的字符串扩展sed(stream editor) 数据流编辑器,流编辑器用于对输入流(文件或来自管道的输入)执行基本的文本转换。虽然在某些方面类似于允许脚本化
2021-07-05 16:47:07 1250 1
原创 Java 访问控制private,default,protected 和 public 区别【Java面试题】
private,default,protected public 区别注意: private 和 protected 不能修饰类(外部类),为什么?因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(prot
2021-07-04 21:40:43 200 1
原创 获取字符串中 某部分的值【Gson & Fastjson 分别实现】
需求从调用某第三方的接口的返回值字符串(举例如下)中,获取其中某部分的值。{\"userId\":\"111\",\"userName\":\"ll\",\"level\":1,\"isVIP\":true}"实现用 Gson 工具类 将 字符串转为Map, 通过key,value 方式获取。代码如下:public class TestString { public static void main(String[] args) { String userI
2021-06-22 19:02:14 1230
原创 102.二叉树的层序遍历【java】--LeetCode Top100
102.二叉树的层序遍历【java】题目代码(java)https://leetcode-cn.com/problems/binary-tree-level-order-traversal/题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],返回其层序遍历结果:[[3],[9,20],[15,7]]代码(java)/** * Definition for a binary
2021-05-16 19:32:24 142
原创 94. 二叉树的中序遍历【java】--LeetCode Top100
94. 二叉树的中序遍历题目思路代码(java)https://leetcode-cn.com/problems/binary-tree-inorder-traversal/题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入
2021-05-16 19:26:44 182
原创 Can‘t chdir to ‘/usr/local/var/db/redis/‘: No such file or directory
问题Can't chdir to '/usr/local/var/db/redis/': No such file or directory解决运行以下命令即可mkdir -p /usr/local/var/db/redis
2021-03-03 18:30:41 6044 1
原创 Docker 安装Redis 详细教程!!!
前言本篇文章介绍了Docker 安装Redis,Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制allkeys-lru】的详细教程,希望对您有所帮助!Docker 安装Redis查找Redis镜像镜像仓库 https://hub.docker.com/DockerHub上搜索对应版本下载镜像docker pull redis#指定版本号:docker pull redis:6.0.6备注:不加版本号默认获取最新版本下载完成后查看镜像 d
2021-01-18 22:22:24 938
原创 LifecycleException: Failed to start component [StandardEngine[Tomcat]
前言SpringBoot启动报错:LifecycleException: Failed to start component [StandardEngine[Tomcat]解决在下图中移除JavaEE6包即可
2021-01-17 22:24:31 727 2
原创 【Mac】安装JDK1.8和JDK11双版本并任意切换
下载安装首先区官网下载JDK8和JDK11安装包,安装后打开bash官网下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.htmlcd /Library/Java/JavaVirtualMachinesls -al上图可知有双版本:jdk-11.0.6.jdk 和 jdk1.8.0_221.jdk,可以看到两个版本安装成功编辑环境变量vim ~/.bash_profile
2021-01-15 13:00:08 2958
翻译 2021年预计有15种DevOps趋势
2021年预计有15种DevOps趋势这是一篇综述文章,我们从15位DevOps专家那里收集了他们对DevOps的背景下2021年趋势的看法。Pavan Belagatti用户头像 通过 帕万·贝拉加蒂 核心 · 21年1月8日 · DevOps区 · 意见喜欢 (1)评论 (0)保存鸣叫 2.45千 次浏览加入DZone社区并获得完整的会员体验。 免费参加DevOps已经走了很长一段路,毫无疑问,它将在今年继续发光。由于许多公司都在寻求有关数字化转型的最佳实践,因此重要的是要了解领导者认
2021-01-09 18:29:05 478 1
原创 程序=数据结构+算法
why 为什么会出现程序呢?小编认为是用为了计算机解决生活中的问题,而数据结构和算法的出现是为了更高效的提高程序执行的效率。但是前提是得合理使用。 为什么要学习数据结构和算法呢?最直观的是money,更深层次是我们要学习他们里面的思想,思维方式,然后运用到生活。what: 程序(计算机程序):一组指令,一组指示计算机或者其他具有消息处理能力装置每一步动作的指令,通
2020-12-31 15:18:58 12811 26
技术架构图(某互联网公司真实架构)
2020-12-28
SQL哪个函数可以生成指定范围内的整数数列?
2022-06-06
员工信息表想要求每个部门工资最高的员工
2022-06-06
数据库Redis连接时报错
2022-06-06
CSV的读取和输出,infile和outfile是要传哪种那种数据类型
2022-06-01
打印日志时,提示报错。但是不太清楚具体怎么修改才能通过编译
2022-06-01
tkinter窗口GUI删除掉这个按钮
2022-06-01
使用Python提取链接时报错,求解答
2022-05-31
关于#python#的问题金字塔原理,一直报错,看看怎么破
2022-05-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人