自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试突击指南:Java基础面试题2

基本类型大小(字节)默认值封装类byte1(byte)0Byteshort2(short)0Shortint40Integerlong80LLongfloat40.0fFloatdouble80.0dDoublebooleanfalseBooleanchar2Characterint是基本数据类型,Integer是int的封装类,属于引用类型。int默认值是0,而Integer默认值是null,因此Integer能区分出0和null的情况。

2024-06-26 20:39:52 452

原创 深入浅出:npm常用命令详解与实践

npm(Node Package Manager)是 Node.js 的包管理工具,用于安装、管理和发布 JavaScript 包。熟悉 npm 常用命令对开发者来说非常重要,本文将深入浅出地讲解一些常用的 npm 命令及其实践。通过上述实践,我们可以初步了解 npm 的常用命令及其使用场景。熟练掌握这些命令,可以极大地提高开发效率和项目管理的规范性。安装依赖是 npm 最常用的功能之一。文件,用于管理项目的依赖和元数据。全局安装的包可以在命令行中直接使用。初始化项目可以生成一个。

2024-06-25 15:57:37 830

原创 Redis入门与应用(2)

Redis支持的value类型包括了String、哈希表、列表、集合等,这使得Redis能够在实际业务场景中得到广泛的应用。能描述键含义的前提下适当减少键的长度,从而减少内存浪费。命令时间复杂度是O(n),当Redis保存大量键时会影响性能,线上环境禁止使用,推荐使用。命令都可以将其删除。返回删除键个数,删除不存在键返回0,支持删除多个键。命令删除旧的键,如果键对应的值比较大,会存在阻塞Redis的可能性。连接到Redis服务后,可以进入命令行模式,执行多条命令。检查键是否存在,存在返回1,不存在返回0。

2024-06-25 14:14:43 708

原创 Redis入门与应用(1)

Redis是一个开源的基于键值对(Key-Value)的NoSQL数据库,使用ANSI C语言编写,支持网络,基于内存但支持持久化。我们可以将Redis视为一个巨大的Map,对Map的操作就是get和put,通过key操作这个key所对应的value。Redis编译完成后,会生成几个可执行文件,如redis-server和redis-cli。以上是Redis的入门与应用,包括技术全景、应用场景、版本选择与安装以及启动方式。配置文件启动是最常用的方式,配置文件可以方便地修改端口、配置和增加密码。

2024-06-24 19:32:34 838

原创 面试突击指南:Java基础面试题1

Fork/Join框架是Java 7引入的一个用于并行执行任务的框架。它通过将大任务分割成若干小任务,并行执行这些小任务,最终汇总每个小任务的结果来得到大任务的结果。

2024-06-23 21:56:47 798

原创 Java面试题:内存管理、类加载机制、对象生命周期及性能优化

符号引用解析的目的是将方法的符号引用(如方法名)转变为具体的方法引用(如内存地址),以便支持方法的调用。如果只有一个Survivor区,当Eden区满时,存活对象会被移动到Survivor区,之后再发生GC时,会导致内存碎片化,因为Survivor区中的存活对象和新的存活对象的内存位置不连续。在JVM中,类的加载指的是将类的.class文件中的二进制数据读入内存,放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。JDK1.7后,位于堆中。

2024-06-23 10:48:12 978

原创 MySQL 面试突击指南:核心知识点解析2

MVCC (Multi-Version Concurrency Control),基于多版本的并发控制协议,是乐观锁的一种实现方式。它避免了许多加锁操作,降低了开销。MVCC 通过创建快照,允许多个事务并发读取不同版本的数据,从而实现读不加锁,读写不冲突,极大地提升了系统的并发性能。

2024-06-22 14:46:46 1407

原创 Postman接口测试工具详解

Postman是一个功能强大且用户友好的API开发和测试工具,广泛用于开发和调试HTTP请求。它提供了一个直观的界面,帮助开发人员发送各种类型的HTTP请求(如GET、POST、PUT、DELETE等)、查看响应结果、进行自动化测试和编写API文档。Postman是一个功能丰富的API开发和测试工具,提供了从基本的请求发送到高级的自动化测试和API文档生成等多种功能。通过Postman,开发人员可以更加高效地开发、测试和维护API,提高整体开发效率和质量。

2024-06-21 15:18:31 959

原创 MySQL 面试突击指南:核心知识点解析1

InnoDb存储引擎有两大类索引:聚集索引和普通(辅助/二级)索引。聚集索引的叶子节点存储行记录,因此InnoDb必须要有且只有一个聚集索引。普通索引的叶子节点只存储索引值和主键值。回表查询:当SQL语句中的列无法在普通索引中获得时,需要通过主键值到聚集索引中获取相关数据。覆盖索引:SQL所需的所有列数据都能在一个索引上获得时,就称为发生了索引覆盖。使用联合索引可以实现覆盖索引。

2024-06-20 13:40:02 1482

原创 现代互联网应用中的HTTPS技术

HTTPS的时代已经到来。由于费用原因,我们需要自建CA机构来给我们的证书进行签名。通过上述步骤,我们可以实现HTTPS的完整流程,确保数据传输的安全性,满足现代互联网应用的需求。在客户端(Windows)生成证书,然后安装到服务端(Linux)。在Windows系统中生成服务端证书,然后再把相关文件上传到服务器。server.crt:服务器证书,被CA机构签名过的证书。生成私钥,需要提供一个至少4位,最多1023位的密码。myca.crt:CA机构证书,即根证书。csr:证书签名请求文件,即待签名证书。

2024-06-18 20:25:14 652

原创 MyBatis中获取Mysql数据库插入记录的主键值

最常用和推荐的方法是使用MyBatis自带的和功能,这种方式简单且易于维护。如果你的数据库不支持自动生成主键或你需要更多的控制,可以选择其他方法。选择哪种方法取决于你的具体需求和数据库环境。

2024-06-18 15:40:51 488

原创 MyBatis中获取Oracle数据库插入记录的主键值

在Oracle数据库中,你可以使用来生成主键值,并在MyBatis中配置以便插入记录时获取该主键值。

2024-06-18 14:57:01 434

原创 Navicat 安装及初步配置指南

Navicat 是一款广泛使用的数据库管理工具,支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。

2024-06-17 20:54:34 390

原创 Redis常用数据结构(1)

Redis提供了一些数据结构供我们往Redis中存取数据,最常用的有5种:字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(ZSet)。

2024-06-17 09:48:24 1220

原创 深入探讨限流算法:固定窗口、滑动窗口、漏桶与令牌桶原理及应用场景

滑动窗口通俗来讲是一种流量控制技术,描述接收方TCP数据报缓冲区大小的数据。发送方根据这个数据计算最大可发送的数据量。滑动窗口协议是TCP使用的一种流量控制方法,允许发送方在停止并等待确认前连续发送多个分组。在实际应用中,可以根据业务需求和系统特点选择合适的限流算法。例如,在Redis中实现限流时,可以使用Redis的原子命令和Lua脚本功能来实现这些算法,确保限流逻辑的原子性和高效执行。

2024-06-16 08:45:00 511

原创 Redis中的Lua脚本

EVAL命令每次执行脚本时都需要发送脚本,因此Redis提供了内部缓存机制,避免每次重新编译脚本。为此,Redis提供了EVALSHA命令,其功能与EVAL相同,但接受的第一个参数是脚本的SHA1摘要。在这个示例中,key [key …其最大的作用是在Lua脚本中调用Redis命令。通过这种方式,Redis 的 Lua 脚本功能不仅提高了性能,还增加了 Redis 在复杂场景下的可用性。命令直接执行脚本,新建一个Lua脚本文件来获取Redis中存入的key1值。命令执行,用于控制对某个资源的访问频率。

2024-06-14 00:45:00 447

原创 探索Lua语言:安装、基本语法与应用案例

它是由C语言实现的,虽然简单小巧但功能强大,所以许多应用都选用它作为脚本语言,尤其是在游戏领域,如暴雪公司的“魔兽世界”和“愤怒的小鸟”。模块,注意本代码仅供参考,在工作中需要使用Lua语言或在Java中执行Lua脚本时,请自行仔细学习Lua语言和luaj-jse的使用。在Java生态中,对Lua的支持主要通过LuaJ,这是一个Java的Lua解释器,基于Lua 5.2.x版本。在默认情况下,变量总是全局的。Redis 2.6版本通过内嵌支持Lua环境,也就是说一般的运用是不需要单独安装Lua的。

2024-06-14 00:15:00 915

原创 Redis高级特性和应用:慢查询、Pipeline、事务、Lua

Redis提供了许多高级特性,可以帮助优化和管理系统性能。本文将介绍Redis的慢查询、Pipeline、事务和Lua脚本的使用及其相关配置。

2024-06-13 17:40:28 1446

原创 Redis分布式锁的实现、优化与Redlock算法探讨

要实现分布式锁,首先需要Redis具备“互斥”能力,这可以通过SETNX命令实现。利用这一点,不同客户端就能实现互斥,从而实现一个分布式锁。但是,由于SETNX和EXPIRE是两条命令,无法保证其原子性,因此有可能只执行了SETNX,未执行EXPIRE。为此,可以引入“看门狗”机制,即在加锁时开启一个守护线程,定期检测锁的失效时间,并在锁快要过期时自动续期。通过上述讲解和代码示例,我们可以看到实现一个高效、可靠的分布式锁系统的关键点和步骤,并且通过使用成熟的库如Redisson,能够大大简化这一过程。

2024-06-13 14:10:13 904

原创 Redis 持久化的奥秘:主线程、子进程与后台线程的区别及潜在阻塞风险

例如,对于 10GB 的 Redis 进程,需要复制大约 20MB 的内存页表,因此 fork 操作耗时与进程总内存量息息相关。对于高流量的 Redis 实例(OPS 可达 5 万以上),如果 fork 操作耗时在秒级别,将拖慢 Redis 几万条命令的执行,对线上应用延迟影响非常明显。它负责Redis的大部分核心功能,包括网络通信、命令处理等。一个进程可以包含多个线程,线程之间共享进程的资源,但每个线程有自己的栈和寄存器上下文。一个进程启动后,如果没有创建额外的线程,这样的进程一般称为主进程或主线程。

2024-06-13 09:25:05 856

原创 Redis 底层原理:持久化机制

但是,如果主线程要修改一块数据(例如图中的键值对 B),那么,这块数据就会被复制一份,生成该数据的副本。该状态开启后,如果执行bgrewriteaof命令,则会把当前内存中已有的数据弄成二进程存放在aof文件中,这个过程模拟了rdb生成的过程,然后Redis后面有其他命令,在触发下次重写之前,依然采用AOF追加的方式。Redis 的数据都在内存中,为了保证所有数据的可靠性,它执行的是全量快照,即将内存中的所有数据都记录到磁盘中。然而,RDB 文件越大,写入磁盘的数据量越大,时间开销也越大。

2024-06-13 00:15:00 854

原创 Redis集群(5)

但是在高可用需求下,可以将参数cluster-require-full-coverage配置为no,主节点故障时只影响负责槽的相关命令执行,不会影响其他主节点的可用性。在分布式存储系统中,维护节点元数据(如节点负责的数据、节点的故障状态等)是关键任务。Redis集群采用P2P的Gossip协议,这种协议的工作原理是节点之间不断通信交换信息,类似流言传播,最终所有节点都会知道集群的完整信息。每个节点通过一定规则挑选通信的节点,节点可能知道全部或部分其他节点信息。下线主节点的所有从节点都要承担故障恢复的义务。

2024-06-12 02:00:00 637

原创 Redis集群(4)

在线迁移slot是Redis集群中一项重要的功能,允许我们在不中断服务的情况下,将一些slot从集群的原节点迁移到新的节点。这在扩容集群时尤为重要。

2024-06-12 01:45:00 1004

原创 Redis集群(3)

假设每个节点应平均分配槽位,因此我们将从节点6900、6901、6902中迁出一部分槽位给节点6903,共计4096个槽位。我们要加入两个节点,主节点端口为6903,从节点端口为6933。重复此过程,将槽位逐一迁移到目标节点。等待所有槽位迁移完成后,检查集群信息确认迁移成功。迁移完成后,检查集群信息以确保槽位迁移成功。我们输入4096和目标节点ID。然后,Redis会询问要从哪些源节点迁移槽位,我们选择"all"。同时将节点6903作为从节点6933的主节点。检查集群信息确认节点已下线,然后关闭节点即可。

2024-06-12 01:30:00 371

原创 Redis集群(2)

在介绍完Redis集群分区规则后,我们将开始搭建Redis集群。搭建Redis集群的方式有几种:1)手动按照Redis协议搭建,使用等命令。2)在Redis 5.0之前,可以使用由Ruby语言编写的工具,但使用之前需要安装Ruby语言环境。3)Redis 5.0及以后版本摒弃了,将集群搭建功能合并到了redis-cli中。我们选择使用第三种方式来搭建,至少需要三个节点来构成集群,而官方推荐的配置是三主三从,我们也将采用这种配置。

2024-06-12 01:15:00 976

原创 Redis集群(1)

Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。现在官方为我们提供了专有的集群方案:Redis Cluster,它非常优雅地解决了Redis集群方面的问题,因此理解应用好 Redis Cluster将极大地解放我们使用分布式Redis 的工作量。

2024-06-12 01:00:00 1428

原创 Docker 的基本概念和优势,以及在应用程序开发中的实际应用

以上示例展示了如何使用 Docker 容器化一个简单的 Node.js 应用,以及如何使用 Docker Compose 来管理一个包含 Web 服务器、应用和数据库的多容器应用。这些工具使得应用程序的开发、部署和运维更加高效和灵活。Docker 是一个开源的容器化平台,旨在通过简化软件容器的创建、部署和运行来促进开发和运维过程。Docker 容器是一种轻量级、便携的、自给自足的执行环境,包含应用程序及其所有依赖项,可以在任何环境中运行。

2024-06-11 20:56:13 1133 1

原创 Redis在互联网大厂中的应用案例分析

通过上述设计,携程金融的统一缓存服务utag在数据准确性、数据完整性和系统可用性方面都得到了保障,成功替代了部分数据库查询,提升了系统性能和稳定性。

2024-06-11 13:59:28 405

原创 Redis脑裂问题详解及解决方案

Nginx本地缓存:解决热点数据缓存问题。Redis分布式缓存:减少访问回源率。Tomcat平台级缓存:防止缓存失效带来的冲击。数据库缓存:提升数据库查询效率。多级缓存的使用保障了系统的高效性和稳定性。

2024-06-11 11:44:35 1100

原创 Redis高并发高可用

Redis的高并发高可用性主要通过其复制机制实现,支持多种复制拓扑结构和灵活的配置选项。复制流程确保数据在主从节点间的一致性,从而实现故障转移、读写分离和负载均衡。了解和配置Redis的复制机制,对于构建高可用的分布式系统至关重要。

2024-06-11 11:27:39 843

原创 如何在Oracle数据库中删除所有表、触发器和序列

本文介绍了如何使用PL/SQL代码在Oracle数据库中删除所有表、触发器和序列。这些操作在重置数据库或进行测试时非常有用,但请务必谨慎执行,以免造成不可逆的损失。

2024-06-07 17:33:21 391

原创 解决缓存数据一致性问题:更新、删除与双删策略

综上所述,针对不同场景和需求,可以选择合适的缓存一致性解决方案,以确保系统数据的准确性和一致性。希望这个指南对你有所帮助。如果有任何问题或建议,请在评论区留言。

2024-06-07 11:30:51 676

原创 解决缓存层面的挑战:缓存穿透、击穿、雪崩、热点 Key 与 BigKey

通过合理的缓存设计和优化策略,可以有效解决缓存穿透、缓存击穿、缓存雪崩、热点 Key 和 BigKey 等问题,提高系统的高可用性和性能。采用布隆过滤器、二级缓存、互斥锁、分散过期时间、分片等技术手段,可以大大提升 Redis 缓存的稳定性和响应速度,从而保证系统的高效运行。

2024-06-07 11:23:37 740

原创 Linux系统上安装Maven的完整指南

通过以上步骤,你已经成功地在Linux系统上安装了Maven。可以选择使用包管理工具安装,适用于大多数Linux发行版,也可以手动下载并配置Maven,以确保安装的版本是最新的。无论选择哪种方法,都需要配置环境变量以便在终端中全局使用Maven命令。希望这个指南对你有所帮助。如果有任何问题或建议,请在评论区留言。

2024-06-06 21:00:00 749

原创 Linux系统上安装JDK的详细指南

以上介绍了在Linux系统上安装JDK的几种方法,包括使用包管理器安装OpenJDK、从Oracle网站下载并安装Oracle JDK,以及使用SDKMAN安装JDK。选择合适的方法取决于你的具体需求和环境。希望这篇指南对你有所帮助。如果有任何问题或建议,请在评论区留言。

2024-06-06 16:31:40 348

原创 在Linux系统上通过RPM安装Oracle数据库的完整指南

Oracle数据库是企业级数据库管理系统。本文将详细介绍如何在Linux系统上通过RPM包安装Oracle数据库,包括系统准备、安装依赖、安装Oracle数据库软件及配置步骤。通过以上步骤,你已经成功地在Linux系统上通过RPM包安装并配置了Oracle数据库。确保按照每一步骤进行操作,以避免安装过程中出现问题。如果遇到任何问题,请查阅Oracle官方文档或社区支持。希望这个指南能帮助你顺利安装和配置Oracle数据库。如果有任何问题或建议,请在评论区留言。

2024-06-06 16:03:41 734

原创 Git 的基本概念和使用方式

Git 是一个分布式版本控制系统,用于跟踪文件的更改,特别是代码文件。它可以有效地管理项目的各个版本,并允许多个开发者协作开发。Git 是一个强大的版本控制系统,广泛应用于软件开发中。通过 Git,开发者可以轻松地管理代码的不同版本,并在多个开发者之间进行协作。本文介绍了 Git 的基本概念和常用操作,帮助您快速上手 Git。了解和熟练掌握这些基本操作后,您可以进一步学习 Git 的高级特性,如子模块、rebasing 和钩子等,以更好地管理和优化您的开发流程。

2024-06-04 23:00:00 465

原创 在 Linux 上配置和启动 Kibana 服务

本文将指导您如何在 Linux 系统上配置和启动 Kibana 服务。Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 配合使用,帮助您浏览 Elasticsearch 索引的数据。通过以上步骤,您已经成功在 Linux 系统上配置和启动了 Kibana 服务。确保 Kibana 不以 root 用户身份运行,以避免潜在的权限问题。通过 systemd 服务管理,您可以方便地启动、停止和管理 Kibana 服务。

2024-06-04 11:33:05 448 1

原创 在CentOS上安装和配置Elasticsearch 7.14.0集群

通过本文的步骤,我们在CentOS上成功安装并配置了Elasticsearch 7.14.0集群,启用了X-Pack安全功能,并进行了证书和密码设置。这样可以确保Elasticsearch集群在安全的环境中运行。

2024-06-03 13:56:47 135

原创 使用Bash脚本自动化Oracle数据库备份

通过这个简单的Bash脚本,可以实现Oracle数据库的自动备份、压缩存档和旧备份文件的清理。这个过程不仅提高了数据库管理的效率,还能有效防止数据丢失。希望这篇文章对您有所帮助!希望这篇博客文章能帮助读者了解如何编写和使用Bash脚本来自动备份Oracle数据库。如果有任何问题或建议,欢迎在评论区留言讨论。

2024-06-01 10:48:56 430

软件 navicat 下载,安装,配置链接及使用教程

软件 navicat 下载,安装,配置链接及使用教程

2024-06-17

open客户端资源分享

open-install-2.3.10-I003-x86_64客户端

2024-06-12

数据库课程设计基本规范

数据库课程设计

2024-06-12

sql语言初级教程及学习资源

SQL(Structured Query Language)是一种用于管理和操作关系数据库的编程语言。它被广泛应用于数据库的查询、插入、更新和删除操作。以下是 SQL 的基本概念、语法及常用操作。

2024-06-12

中国行政区划数据获取(java版本生成插入sql)

目的: 将中国的行政区划数据导入到关系型数据库中,以便于进行地理数据分析、地址查询等应用。 数据源: 行政区划数据可能来自政府公开数据、API服务或者第三方数据提供商。 数据结构: 行政区划数据通常包含多个层级,如国家、省、市、区/县等,以及相关的属性信息,例如名称、代码等。

2024-06-11

maven下载、安装、配置与使用教程(windows、Linux)

Apache Maven 是一个强大的项目管理和构建自动化工具,主要用于 Java 项目。以下是 Maven 在 Windows 和 Linux 系统上的下载、安装、配置与使用的详细教程。

2024-06-11

elasticsearch-7.14.0和ik分词器

Elasticsearch 是一个开源的分布式搜索和分析引擎,旨在提供快速、实时的搜索和分析能力。而 IK 分词器是 Elasticsearch 中的一种中文分词器,可以将中文文本按照词语粒度进行拆分,有助于提高中文搜索的准确性和效率。

2024-06-11

Oracle 19c Linux离线安装依赖

Oracle 19c Linux离线安装依赖

2024-06-11

空空如也

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

TA关注的人

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