• Redisson 中为什么要废弃 RedLock,该用啥?
    Redisson 中为什么要废弃 RedLock,该用啥?
  • Redis Cluster 中使用事务和 Iua 有什么限制?
    Redis Cluster 中使用事务和 Iua 有什么限制?
  • Redisson解锁失败,watchdog会不会一直续期下去?
    在redis中,Redisson解锁失败,watchdog会不会一直续期下去?
  • [技术干货] openGemini技术洞察
    openGemini技术洞察 一   关于openGemini          openGemini是一款面向IoT和Devops场景垂直优化的分布式时序数据库,提供单机和分布式版本,具备卓越的读写性能和高效的数据分析能力,支持主流开发语言和多形态部署(如云、Docker、物理机等)。openGemini主要聚焦于海量时序数据的存储和分析,通过技术创新,降低海量时序数据存储成本,简化业务系统架构,提升时序数据存储和分析效率。         openGemini背靠华为云丰富的IoT和Devops场景,经受住了海量时序数据管理的实战考验。自开源以来,不断收到来自社区用户的正向反馈,已累积在60+企业测试和生成落地使用。         openGemini具有五大核心特性:1.高性能:支持亿级时间线和PB级时序数据管理,每秒千万级数据写入和毫秒级查询响应,相比InfluxDB,简单查询性能提升2-5倍,复杂查询性能提升60倍2.分布式:采用MPP大规模并行处理分层架构,由ts-sql、ts-meta、ts-store三个组件组成,各组件可独立扩展,支持100+节点的大规模集群部署3.存储分析一体化:内置AI数据分析平台,提供了对时序数据的实时异常检测能力,实现了数据从存储到分析完整的闭环管理4.运维成本低:提供260+项系统运行监控指标,快速提升问题解决的效率。部署过程中不依赖任何第三方组件和应用,极大降低了运维难度和成本5.高数据压缩率:采用列式存储方式,提供高效数据压缩算法,相同数据量下存储成本仅有关系型数据库的1/20,NoSQL的1/10 二   openGemini使用场景 openGemini 是一个开源的时序数据库,专注于高性能的时序数据存储、查询和分析。它适用于多种需要处理大量时间序列数据的场景,尤其在物联网(IoT)、监控、金融、日志分析等领域表现突出。以下是 openGemini 的主要使用场景:1. 物联网(IoT)与工业互联网设备监控:实时采集和存储传感器数据(如温度、湿度、压力等),并支持快速查询和分析。预测性维护:通过历史数据趋势分析,预测设备故障或异常。边缘计算:与边缘设备结合,实现本地化数据处理和实时响应。2. IT 基础设施与运维监控服务器/容器监控:存储 CPU、内存、磁盘、网络等指标数据,支持 Prometheus 兼容的查询。应用性能管理(APM):追踪微服务或分布式系统的性能指标(如延迟、错误率)。告警与分析:基于时序数据触发告警,并快速定位问题根源。3. 金融与交易数据分析高频交易:存储和分析秒级/毫秒级的交易数据,支持实时风控。行情数据存储:记录股票、加密货币等的价格变动历史。用户行为分析:分析交易行为的时间序列模式(如登录频率、操作习惯)。4. 日志管理与分析集中式日志存储:替代 Elasticsearch 的部分场景,存储时间戳日志(如 Nginx、Kubernetes 日志)。日志实时分析:通过 SQL-like 查询快速检索日志,或聚合分析错误趋势。5. 能源与智慧城市智能电表/水表数据:存储居民或企业的能源消耗数据,支持分时计费和大规模聚合。环境监测:分析空气质量、噪声等环境传感器的时序数据。6. 车联网与自动驾驶车辆遥测数据:记录车辆行驶中的速度、油耗、GPS 位置等数据。驾驶行为分析:通过时间序列数据优化路线或检测危险驾驶。7. 其他场景科研实验数据:存储实验室设备生成的时间序列结果(如生物、化学实验)。游戏数据分析:记录玩家在线行为、道具交易等时序事件。openGemini 的核心优势高性能:针对时序数据优化,支持高吞吐写入和低延迟查询。水平扩展:分布式架构,可轻松扩展集群规模。兼容性:支持 InfluxDB Line Protocol、PromQL 等协议,降低迁移成本。成本效益:开源方案,相比商业时序数据库(如 InfluxDB Enterprise)更经济。典型用户案例某智能制造企业:用 openGemini 存储万台设备的传感器数据,实现实时监控。某云服务商:替代 Elasticsearch 存储日志,降低 50% 存储成本。某金融公司:分析高频交易数据,延迟控制在毫秒级。 三   openGemini的安装与使用 通过docker安装openGemini:docker run -d --name opengemini opengeminidb/opengemini-server:latest安装日志:C:\Windows\System32>docker run -d --name opengemini opengeminidb/opengemini-server:latestUnable to find image 'opengeminidb/opengemini-server:latest' locallylatest: Pulling from opengeminidb/opengemini-server0de4ca3c6b94: Pull complete0e0c0faae025: Pull complete631a47dfb3a9: Pull completed9b4a4d929b9: Pull complete9b244a79caed: Pull completeDigest: sha256:cf2db989234638460423bbd20af64c743684f48449227302c3868e0a8872079bStatus: Downloaded newer image for opengeminidb/opengemini-server:latest2e31cad3116dce374b374207aaff383464e09eb3a5aef2d839ff7a5298b8ae4e 使用openGemini cli 连接:docker exec -it opengemini ts-cli 创造数据库:create database db0 展示目前的数据库列表:show databases  使用数据库use db0 写数据insert cpu_load,host=server-01,region=west_cn value=75.3 查看表show measurements  查询数据select * from cpu_load docker run -p 8086:8086 58b26b87069a73291fd55addfa1f30780735f47e95199fe6d7699fed29281db2  日志信息:C:\Windows\System32>docker exec -it opengemini ts-cliopenGemini CLI  (rev-)Please use `quit`, `exit` or `Ctrl-D` to exit this program.> create database db0> show databasesname: databases+-----------+|   name    |+-----------+| _internal || db0       |+-----------+1 columns, 2 rows in set> use db0Using database: db0, retention policy: autogen> insert cpu_load,host=server-01,region=west_cn value=75.3> show measurementsname: measurements+----------+|   name   |+----------+| cpu_load |+----------+1 columns, 1 rows in set> select * from cpu_loadname: cpu_load+---------------------+-----------+---------+-------+|        time         |   host    | region  | value |+---------------------+-----------+---------+-------+| 1755072990101890304 | server-01 | west_cn |  75.3 |+---------------------+-----------+---------+-------+4 columns, 1 rows in set>  CLI写数据Line Protocol(行协议) 是InfluxDB提出的一种基于文本的数据格式,openGemini使用相同Line Protocol,用于将points 写入 openGemini。 > INSERT weather,location=us-midwest temperature=82 1465839830100400200> select * from weathername: weather+---------------------+------------+-------------+|        time         |  location  | temperature |+---------------------+------------+-------------+| 1465839830100400128 | us-midwest |          82 |+---------------------+------------+-------------+3 columns, 1 rows in set InfluxQL查询SELECT top("value", 1) FROM "weather" 日志:> SELECT top("value", 1) FROM "cpu_load"name: cpu_load+---------------------+------+|        time         | top  |+---------------------+------+| 1755072990101890304 | 75.3 |+---------------------+------+2 columns, 1 rows in set 过滤查询 INSERT weather,location=us-midwest1 temperature=82 1165839830100400200INSERT weather,location=us-midwest1 temperature=52 1165839830100400202INSERT weather,location=us-midwest1 temperature=12 1165839830100400201 > SELECT * FROM "weather" WHERE "temperature" > 50name: weather+---------------------+-------------+-------------+|        time         |  location   | temperature |+---------------------+-------------+-------------+| 1165839830100400128 | us-midwest1 |          82 || 1165839830100400128 | us-midwest1 |          52 |+---------------------+-------------+-------------+3 columns, 2 rows in set 四   总结openGemini通过开源协作推动时序数据库技术的普惠化,帮助各行业高效挖掘时序数据价值。openGemini针对物联网、监控等场景的海量时序数据(高写入吞吐、低查询延迟)优化,解决传统关系型数据库或通用 NoSQL 数据库的效率瓶颈。
  • [问题求助] Redis如何高效安全的遍历所有key?
    Redis如何高效安全的遍历所有key?
  • [问题求助] redis实现分布式锁的时候,哪些问题需要去考虑呢?
    redis实现分布式锁的时候,哪些问题需要去考虑呢?
  • [问题求助] 如何用setnx实现一个可重入锁?
    如果用setnx来实现分布式锁比较容易,但是如何用setnx实现一个可重入锁?
  • [问题求助] 如何使用redis来实现乐观锁呢?
    如何使用redis来实现乐观锁呢?
  • [问题求助] 为什么redis不支持回滚?
    为什么redis不支持回滚?如果出现了错误也无法回滚,这是为啥?这么设计有什么好处吗?
  • [问题求助] Redisson的lock和tryLock有什么区别?
    Redisson的lock和tryLock有什么区别?
  • [问题求助] Redis的事务和Lua之间有哪些区别?
    Redis的事务和Lua之间有哪些区别?lua脚本可以保证原子性吗?这个原子性和mysql中的原子性是一样的吗?
  • [问题求助] redis的Pipeline是什么?
    redis的Pipeline是什么?它保证原子性吗?和事务又有什么区别呢?
  • [问题求助] Java服务使用了读写分离地址,代码中使用事务注解,会强制走主库吗?
    Java服务使用了读写分离地址,代码中使用事务注解,会强制走主库吗?
  • [技术干货] 【技术合集】数据库板块2025年7月技术合集
    随着项目规模的增长,数据库的性能瓶颈往往成为系统架构中最难搞的一环。而 MySQL 作为最主流的关系型数据库,其底层机制复杂却又关键,本文集围绕 多表 JOIN、事务隔离、锁机制、MVCC、行格式、索引原理 等核心技术点,逐一拆解、层层深入。📌 如果你曾被幻读/死锁/性能差等问题搞得焦头烂额,强烈建议你收藏此合集,每一篇都干货十足,配图丰富、案例清晰、代码实测、适合收藏阅读!📚文章目录及链接合集📌 MySQL 执行与性能多表 JOIN 的性能影响👉 https://bbs.huaweicloud.com/forum/thread-0270186849317765051-1-1.htmlSQL 语句执行过程👉 https://bbs.huaweicloud.com/forum/thread-0229187680345438021-1-1.html🧱 存储引擎与行格式InnoDB 行格式详解👉 https://bbs.huaweicloud.com/forum/thread-02126187680426018024-1-1.html🔁 MySQL 事务机制MySQL 事务详解👉 https://bbs.huaweicloud.com/forum/thread-0229187680483031022-1-1.htmlMySQL 事务隔离级别👉 https://bbs.huaweicloud.com/forum/thread-0274187680598334024-1-1.htmlRR 与 RC 的选择分析👉 https://bbs.huaweicloud.com/forum/thread-0274187681165346025-1-1.htmlRR 隔离级别下的幻读问题详解👉 https://bbs.huaweicloud.com/forum/thread-0221187682056992027-1-1.html🧠 MVCC 与快照机制MVCC 多版本并发控制详解👉 https://bbs.huaweicloud.com/forum/thread-0288188139086062004-1-1.html当前读与快照读的区别👉 https://bbs.huaweicloud.com/forum/thread-0232188139144430006-1-1.html🔐 锁机制深入剖析共享锁与排它锁详解👉 https://bbs.huaweicloud.com/forum/thread-0232188139225915007-1-1.html行锁详解👉 https://bbs.huaweicloud.com/forum/thread-02127188139387394005-1-1.html乐观锁与悲观锁的机制及应用场景👉 https://bbs.huaweicloud.com/forum/thread-0232188895402649026-1-1.html意向锁的作用机制与实现原理👉 https://bbs.huaweicloud.com/forum/thread-0288188896948025029-1-1.html📊 索引原理与优化InnoDB 索引类型原理与应用👉 https://bbs.huaweicloud.com/forum/thread-0278188897293658027-1-1.html
  • [技术干货] 【FAQ】2025年7月数据库问题汇总
    问题1: gaussdb对列约束无法生效https://bbs.huaweicloud.com/forum/thread-0278188116857383004-1-1.html官网购买的集中式GaussDB,无法有效进行列约束,在OpenGauss也存在同样的问题。建表语句如下:-- test.author definition -- Drop table -- DROP TABLE test.author; CREATE TABLE test.author ( "name" varchar(255) NULL, ssn varchar(255) NOT NULL, CONSTRAINT author_pkey PRIMARY KEY (ssn) ) WITH ( orientation=row, compression=no, storage_type=USTORE, segment=off ); -- test.publisher definition -- Drop table -- DROP TABLE test.publisher; CREATE TABLE test.publisher ( id int8 NOT NULL, "name" varchar(255) NULL, CONSTRAINT publisher_pkey PRIMARY KEY (id) ) WITH ( orientation=row, compression=no, storage_type=USTORE, segment=off ); -- test."publication" definition -- Drop table -- DROP TABLE test."publication"; CREATE TABLE test."publication" ( edition int4 NULL, pages int4 NOT NULL, id int8 NOT NULL, journal_id int8 NULL, publisher_id int8 NULL, "type" varchar(31) NOT NULL, editor_ssn varchar(255) NULL, reviewer_ssn varchar(255) NULL, "text" varchar(255) NOT NULL, title varchar(255) NOT NULL, CONSTRAINT publication_check CHECK ((((type)::text <> 'Journal'::text) OR (editor_ssn IS NOT NULL))), CONSTRAINT publication_check1 CHECK ((((type)::text <> 'Paper'::text) OR ((journal_id IS NOT NULL) AND (reviewer_ssn IS NOT NULL)))), CONSTRAINT publication_check2 CHECK ((((type)::text <> 'Monograph'::text) OR ((edition IS NOT NULL) AND (publisher_id IS NOT NULL)))), CONSTRAINT publication_pkey PRIMARY KEY (id), CONSTRAINT fk5t99olpri06wxydpgt7tbrryo FOREIGN KEY (journal_id) REFERENCES test."publication"(id), CONSTRAINT fk73xtxlre34ytcfa94qe08fqy2 FOREIGN KEY (publisher_id) REFERENCES test.publisher(id), CONSTRAINT fk7vax9876yc071ub863ce2bgai FOREIGN KEY (editor_ssn) REFERENCES test.author(ssn), CONSTRAINT fkg0vywq9ss89o2otfboc3iko15 FOREIGN KEY (reviewer_ssn) REFERENCES test.author(ssn) ) WITH ( orientation=row, compression=no, storage_type=USTORE, segment=off ); INSERT INTO test.author ("name",ssn) VALUES ('John Editor','123-45-6789'), ('Jane Reviewer','987-65-4321'); INSERT INTO test.publisher (id,"name") VALUES (1,'publisher'); INSERT INTO test."publication" (edition,pages,id,journal_id,publisher_id,"type",editor_ssn,reviewer_ssn,"text",title) VALUES (1,10,1,NULL,1,'Monograph',NULL,NULL,'text','title'), (NULL,100,2,NULL,NULL,'Journal','123-45-6789',NULL,'Journal Content','Journal Title'), (NULL,10,3,2,NULL,'Paper',NULL,'987-65-4321','Paper Content','Paper Title'); 执行以下插入语句,应该会因为列约束而报错,但是执行成功了。insert into test."publication" (pages, text, title, edition, publisher_id, type, id) values (100, 'Lorem ipsum', 'Lorem Ipsum', 1, 1, 'Shrubbery', 5) 对应的约束是:ALTER TABLE test."publication" ADD CONSTRAINT publication_check CHECK ((((type)::text <> 'Journal'::text) OR (editor_ssn IS NOT NULL))) 答:GaussDB中列约束未生效可能由CHECK约束未正确触发导致,常见原因包括:1.约束逻辑缺陷:当前约束publication_check仅针对type='Journal’时校验editor_ssn,而插入的type='Shrubbery’不满足触发条件;2.存储引擎兼容性:使用USTORE存储时需确认其对约束的完整支持(建议切换至默认存储引擎测试);3.事务或会话级问题:检查是否在事务中绕过约束验证,或存在会话级参数(如constraint_exclusion)影响。建议操作:1.修正约束逻辑(如增加对type='Shrubbery’的校验);2.联系华为云技术支持,提供建表语句、插入操作及执行日志以定位问题。问题2:GaussDB 在分布式架构下如何保证跨节点事务的 ACID 特性https://bbs.huaweicloud.com/forum/thread-0275187926355128029-1-1.html答:GaussDB在分布式架构下通过以下机制保证跨节点事务的ACID特性:1.原子性(A):采用两阶段提交(2PC)协议,协调节点统一管理事务分支的提交/回滚,确保所有节点操作全成功或全失败;2.一致性(C):通过全局事务管理器(GTM)分配全局唯一事务ID(XID),结合写前日志(WAL)和强一致性复制,保证事务执行前后数据状态一致;3.隔离性(I):支持分布式快照隔离(DSI),协调节点统一生成全局快照,确保事务间数据可见性符合隔离级别要求;4.持久性(D):依赖多副本同步存储(如OBS)和Paxos协议,确保事务提交后数据在多个节点持久化,故障时自动恢复。关键优化:减少跨节点RPC次数,通过批量处理和并行提交提升性能。问题3: GaussDB 声称支持 OLTP 和 OLAP 混合负载,但其底层存储引擎如何同时优化 行存(高并发事务) 和 列存(分析查询)?https://bbs.huaweicloud.com/forum/thread-0275187926287387028-1-1.html答:GaussDB通过多模存储引擎和统一查询处理框架同时优化行存与列存:1.存储层解耦:支持行存(USTORE/In-Row)与列存(CSTORE)混合部署,行存优化高并发OLTP的点查、短事务,列存优化OLAP的扫描、聚合;2.智能路由:执行计划根据查询特征(如扫描行数、聚合类型)自动选择存储引擎,例如单行查询走行存,全表扫描走列存;3.向量化执行:列存引擎采用向量化计算(SIMD指令)加速分析查询,行存引擎通过缓存优化减少I/O;4.统一事务管理:跨行存/列存的数据修改通过全局事务管理器(GTM)保证ACID,避免数据不一致。问题4: GaussDB 为适配国产化环境(如鲲鹏 CPU、麒麟 OS)做了哪些 指令集优化 和 内核态调整?https://bbs.huaweicloud.com/forum/thread-02127187926199487023-1-1.html答:GaussDB针对国产化环境(鲲鹏CPU、麒麟OS)进行了以下优化:1.指令集优化:深度适配鲲鹏的ARMv8指令集,利用NEON指令集加速向量化计算(如SIMD优化),提升聚合、排序等OLAP操作性能;2.内核态调整:优化线程调度、内存管理(如NUMA感知)和I/O路径,减少内核态与用户态切换开销,适配麒麟OS的国产化内核特性;3.编译优化:基于鲲鹏编译器(BioSuite)进行代码生成优化,提升指令并行度。问题5:gaussdb执行计划中出现的BYPASS字样,该如何理解和处理?https://bbs.huaweicloud.com/forum/thread-0275187407738559013-1-1.html在《HCIE-GaussDB-OLTP V1.0 实验手册》中,对于bypass的解释是:“bypass字样说明执行引擎走了更加轻量化的bypass执行过程”。在《GaussDB轻量化部署形态 24.7.30 产品文档 01》中的《开发指南》分布式版中,对于参数“enable_opfusion”的说明中,则提及:“如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。”如上,前者似乎表示走了更好的执行步骤,而后者似乎表示还有优化空间。那在执行计划中遇到bypass出现时,该如何理解和处理呢?答:在GaussDB执行计划中,BYPASS字样表示执行引擎采用了轻量化优化路径(如SQL-BYPASS框架),跳过经典执行器框架的算子初始化、表达式计算等步骤,直接调用存储接口,核心目的是减少执行开销、提升简单查询性能(例如分区表查询性能可提升30%)。  处理建议:无需主动干预:BYPASS是GaussDB的优化机制,通常意味着查询已自动选择高效路径;关注性能变化:若查询性能未达预期,可检查是否因复杂操作(如聚合、排序)导致未触发BYPASS,此时需优化SQL或调整参数(如enable_opfusion);结合文档验证:参考华为官方文档确认BYPASS的触发条件(如简单查询模式),确保配置与场景匹配。
总条数:553 到第
上滑加载中