- 博客(66)
- 问答 (1)
- 收藏
- 关注
原创 布隆过滤器技术文档
/ 自定义布隆过滤器(Java)// 4个哈希函数if (!上述 Java 代码展示了一个简单的自定义布隆过滤器实现,通过BitSet存储二进制位,使用多个哈希函数对元素进行映射,实现了元素的插入和查询操作。布隆过滤器采用空间换时间的策略,在处理海量数据的存在性判断问题上表现出色,尤其适用于对性能要求较高且能够容忍一定误判率的场景,如缓存穿透防护、网络爬虫 URL 去重等。
2025-05-07 15:30:52
1055
原创 Redis的阻塞
阻塞类型关键表现优先级解决方案大Key操作单命令执行时间过长高拆分Key、改用分片或压缩结构持久化fork延迟值高高降低RDB频率、优化内存页管理CPU竞争服务器整体CPU饱和中隔离部署、绑定CPU核心内存交换异常高紧急禁用Swap、增加物理内存综合建议监控工具:使用SLOWLOG、分析慢查询,扫描大Key。架构设计:采用读写分离、集群分片(Redis Cluster)分散负载。配置调优:调整maxmemory、,优化淘汰策略(如)。
2025-04-27 21:26:05
580
原创 Redis Bitmaps
Bitmaps 是 Redis 处理大规模二元状态场景的利器,尤其适合高密度数据存储与实时统计。但在稀疏数据或需多值存储的场景中,需权衡其与集合、HyperLogLog 等其他结构的优劣。合理设计偏移量、预分配内存及集群策略,可最大化其性能优势。
2025-04-24 16:13:29
784
原创 Redis Pipeline 详解
Note right of Server: 总耗时 ≈ 1*RTT + 命令执行时间[1,3](@ref)Note over Client,Server: 执行3次命令(打包为1次RTT)Server->>Client: 批量返回结果1+2+3(耗时1次RTT)Server->>Client: 返回结果1(耗时RTT)Server->>Client: 返回结果2(耗时RTT)Server->>Client: 返回结果3(耗时RTT)Client->>Server: 批量发送命令1+2+3。
2025-04-23 14:21:02
1116
原创 Redis-cli常用参数及功能的详细说明
扫描内存中占用较大的键(如字符串值超过5MB或集合元素超2000)。:从标准输入(如管道或文件)读取数据作为命令的最后一个参数。:避免在命令行明文暴露密码,建议通过环境变量传递。:请求Redis生成RDB持久化文件并保存到本地。:大键可能导致内存溢出、删除阻塞或集群倾斜。:减少网络开销,适合复杂逻辑(如分布式锁)。:测试命令稳定性或批量操作(如压力测试)。:测试客户端到Redis服务器的网络延迟。:直接运行Lua脚本,支持原子性操作。:避免高频操作导致服务端负载过高。:诊断网络抖动或服务端性能问题。
2025-04-23 11:22:29
1199
原创 Redis 慢查询分析与优化
通过合理配置 和,结合 和监控工具,可精准定位 Redis 性能瓶颈。优化核心在于规避高复杂度命令、治理 BigKey、动态调整配置及利用集群技术。定期分析日志与监控数据,是保障 Redis 高性能运行的关键。。
2025-04-21 20:16:47
1130
原创 Redis 键管理
在同一 Redis 实例的不同数据库间迁移键(如从 DB0 移到 DB1)。通过合理运用上述命令,可显著提升 Redis 数据管理的安全性与效率。:随机返回当前数据库中的一个键名,适用于抽样或调试场景。:原子化跨实例迁移键,支持批量操作与选项控制。 存储为 Unix 时间戳。所有过期时间最终转换为。,否则返回键名(如。
2025-04-21 16:58:47
867
原创 Redis 有序集合(Sorted Set)
以时间戳为分数,存储用户行为日志,按时间范围查询。:计算多个有序集合的交集/并集,结果存储到新键。,k是添加成员的个数,n是当前有序集合成员个数。:超出 ziplist 容量限制时自动转换。:统计分数区间内元素(如商品价格区间)。:添加或更新元素及其分数(支持。:增减元素的分数(如积分变动)。:以用户积分作为分数,利用。 获取排名前 N 的用户。
2025-04-21 16:54:35
1765
原创 Redis SCAN 命令的详细介绍
以下是 RedisSCAN一、核心特性非阻塞式迭代通过游标(Cursor)分批次遍历键,避免一次性全量扫描阻塞主线程。每次迭代仅返回少量数据(默认约 10 个键),分散服务器压力。弱一致性保证迭代过程中若键被修改(新增/删除),可能导致重复或遗漏。采用快照机制,但无法保证强一致性,需业务层处理重复数据。支持模式匹配与类型过滤MATCH参数支持通配符(如user:*)过滤键名。TYPE 参数(Redis 6.0+)可指定键类型(如hashstring。
2025-04-21 10:48:48
1332
原创 Redis Set 的详细介绍
以下是 Redis Set 的详细介绍,从基础命令内部编码和使用场景一、基础命令Redis Set 是一个无序且元素唯一的集合,支持高效的成员判断、集合运算(交集、并集、差集)和随机访问。1. 元素操作SADD:添加一个或多个元素到集合。SADD tags:article:1001 "tech" "database" "redis" # 返回成功添加的元素数量SREM:删除集合中的指定元素。SREM tags:article:1001 "database" # 返回删除成功的元素数量SISMEMBER。
2025-04-18 10:29:19
1097
原创 Redis List 的详细介绍
以下是 Redis List 的详细介绍,从基础命令内部编码和使用场景一、基础命令1. 插入与删除LPUSHRPUSH:从左侧(头部)或右侧(尾部)插入元素。LPUSH mylist "A" # 头部插入 "A",返回列表长度RPUSH mylist "B" # 尾部插入 "B",返回列表长度LPOPRPOP:从头部或尾部移除并返回元素。LPOP mylist # 移除头部元素 "A" RPOP mylist # 移除尾部元素 "B"LINSERT:在指定元素前/后插入新元素。
2025-04-17 17:19:21
2489
原创 Redis Hash 介绍
一、基础命令设置与修改HSET:设置单个字段值()。# 存储用户信息(用户ID=1001)# 返回3(表示成功设置3个字段)HSETNX:仅当字段不存在时设置值,避免覆盖。# 防止覆盖已存在的字段HSETNX user:1001 email "new@example.com" # 返回0(字段已存在,未修改)HSETNX user:1001 address "New York" # 返回1(新增字段)HINCRBY:对数值型字段进行增减操作(如计数器场景)。场景。
2025-04-17 10:38:33
775
原创 Redis 常见的集群架构
数据备份、读请求远多于写的场景(如缓存系统)。:中小规模系统,需高可用但无需分片的场景(如核心业务缓存)。:大规模数据存储和高并发场景(如电商库存系统)。。
2025-04-14 15:25:35
4566
原创 Redis 版本变更的变化
发布首个稳定版本,支持基本键值存储。。简单持久化(基于快照的 RDB)。RDB(Redis Database)是 Redis 默认的持久化方式,通过生成内存数据的二进制快照文件(如 dump.rdb)实现数据持久化。其核心原理是周期性地将内存中的数据集以压缩的二进制格式保存到磁盘,重启时通过加载 RDB 文件快速恢复数据SAVEBGSAVEredis.confsave数据丢失风险:若两次快照间发生宕机,可能丢失最后一次快照后的数据fork():不同 Redis 版本的 RDB 文件格式可能不兼容。
2025-04-14 13:51:34
1737
原创 Elasticearch数据流向
数据流向图索引:数据逻辑容器(如 表示 2023 年日志)。分片:分片规则:3. 数据查询流程(客户端 → Elasticsearch)步骤 1:客户端向协调节点发送搜索请求。步骤 2:协调节点将请求广播到所有相关分片(主分片或副本分片)。步骤 3:各分片执行本地搜索并返回结果。步骤 4:协调节点聚合结果,排序后返回客户端。配置参数关联流程环节相关配置作用Logstash输出指定Elasticsearch协调节点地址索引路由(Logstas
2025-04-08 17:55:23
1230
原创 HTML 头部介绍
HTML 头部是网页中最重要的部分之一,它包含了一些必要的信息,如文档类型、字符编码、样式表和脚本等。正确使用 HTML 头部可以使网页更加美观、易读和易维护。建议在编写网页时,认真编写 HTML 头部,以提高网页的质量和用户体验。
2023-08-31 22:53:35
1700
原创 html笔记01
标签是用来表示强调文本的HTML元素。在浏览器中,通常会将其呈现为斜体字体。标签的内容通常是需要强调的单词、短语或句子。标签的使用方法很简单,只需要将需要强调的文本包裹在和
2023-08-31 22:37:29
271
原创 jvm虚方法和非虚方法
在Java中,虚方法和非虚方法是两种不同的方法类型。虚方法是在运行时由实例的实际类型决定的方法,而非虚方法则是在编译时就可以确定调用哪个方法。为了支持动态绑定,JVM使用了虚方法表来存储每个类的虚方法信息。了解这些概念对于理解Java中的多态性和继承机制非常重要。
2023-08-31 17:10:54
466
原创 JVM静态链接和动态链接介绍以及区别
在Java虚拟机(JVM)中,链接是将多个代码模块组合成一个可执行程序的过程。链接分为静态链接和动态链接两种类型。本文将介绍JVM中的静态链接和动态链接,并比较它们之间的区别。JVM中的静态链接和动态链接都有各自的优点和缺点。静态链接适用于那些不需要频繁更新代码的应用程序,因为它可以提高程序运行速度。动态链接适用于那些需要频繁更新代码的应用程序,因为它可以减小程序体积,并且可以在不重新编译整个程序的情况下更新代码。因此,在选择链接方式时,应该根据应用程序的需求来进行选择。
2023-08-31 14:52:41
886
原创 JVM操作数栈介绍
在Java虚拟机中,操作数栈(Operand Stack)是一个重要的概念。操作数栈是用来存储操作数的栈结构,它是JVM执行指令时的一个重要组成部分。本文将介绍JVM操作数栈的相关知识。本文介绍了JVM操作数栈的相关知识。在Java程序中,操作数栈扮演了重要的角色,对其进行优化可以提高程序性能。因此,在编写Java程序时,应该尽量减少不必要的指令、使用局部变量和基本数据类型等优化方法。
2023-08-30 22:10:27
293
原创 jvm 局部变量表介绍(常见问题)
A. 局部变量表是什么?B. 局部变量表的作用是什么?A. 局部变量表是什么?局部变量表是Java虚拟机(JVM)中的一块内存区域,用于存储方法中定义的局部变量和方法参数。B. 局部变量表的作用是什么?局部变量表在方法执行时用于存储方法参数和方法中定义的局部变量。它是JVM执行方法时的一个重要组成部分。局部变量表是Java虚拟机中非常重要的一块内存区域,用于存储方法参数和局部变量。了解局部变量表的结构和使用方式,可以帮助我们更好地理解Java程序在JVM上的执行过程。
2023-08-30 21:51:44
148
原创 栈数据结构介绍以及java代码模拟
本文介绍了栈数据结构及其基本操作。我们使用Java语言分别基于数组和链表实现了栈。无论是哪种实现方式,都具有相同的时间复杂度和空间复杂度(O(1))。在实际应用中,我们可以选择其中一种实现方式来满足特定需求。
2023-08-30 15:20:37
109
原创 jvm虚拟机栈01
虚拟机栈(Java Virtual Machine Stack,JVM Stack)是Java虚拟机的一部分,主要用于存储线程执行Java方法时的局部变量、操作数栈、动态链接和方法出口等信息。异常处理:虚拟机栈可以用于处理Java程序中的异常,当发生异常时,虚拟机会检查当前线程的虚拟机栈,查找能够处理该异常的异常处理器。栈结构:虚拟机栈是一个后进先出(LIFO)的栈结构,用于存储方法的局部变量、操作数栈、动态链接、方法出口等信息。独立性:每个线程都有自己的虚拟机栈,用于存储线程私有的数据。
2023-08-25 16:48:44
111
原创 java构造函数介绍
构造函数是一种特殊的方法,它用于初始化对象。当创建一个新的对象时,构造函数会自动调用,以初始化该对象的状态。通常情况下,构造函数与类名相同,并且没有返回值。在Java中,有两种类型的构造函数:默认构造函数和自定义构造函数。默认构造函数是由编译器自动生成的,如果没有显式定义构造函数,则默认构造函数会被调用。自定义构造函数是由程序员显式定义的,它可以接受参数并执行一些初始化操作。
2023-08-23 12:13:46
714
原创 java模块化介绍
随着软件开发的不断发展,软件的规模和复杂度也在不断增加,因此,如何有效地管理软件的各个组件和依赖关系,成为了软件开发中的一个重要问题。Java平台模块系统(Java Platform Module System,JPMS)应运而生,它是Java 9中引入的一个全新特性,旨在解决Java应用程序中的模块化问题。Java平台模块系统是Java 9中引入的一个新的模块化系统,它允许开发者将代码组织成为一个个可重用的模块,以便更好地管理代码的依赖关系和版本控制。
2023-08-23 00:24:56
304
原创 java特性(封装介绍)
在上面的例子中,我们通过私有属性和公有方法来实现了封装,从而保护了对象的内部数据,并提供了对外的接口。外部代码无法直接访问对象的内部数据,只能通过提供的接口来访问和修改对象的属性。封装(Encapsulation)是面向对象编程中的一种重要概念,它指的是将数据和行为(方法)组合在一个类中,并对外部隐藏对象的内部细节,只对外暴露必要的接口,以保证对象的安全性和可维护性。高内聚指的是一个模块或类内部的各个方法和属性之间的联系紧密程度,低耦合指的是不同模块或类之间的联系松散程度。
2023-08-22 23:06:21
350
ELk整体介绍整理PPT涵盖了ELk 相干的架构整理
2025-04-09
mybatisplus json数据插入没有问题但是查询返回null
2021-02-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅