Redis JSON介绍

Redis JSON介绍

  • Redis JSON
    • 先说说`JSON`是什么
    • 再说说`JSON Path`
      • 先推荐两个网站
      • `JSONPath JAVA clents`
    • `Redis JSON` 安装
    • 内存
    • json命令语法
      • 命令url
      • 命令解释
          • `JSON.ARRAPPEND`
          • `JSON.ARRINDEX`
          • `JSON.ARRINSERT`
          • `JSON.ARRLEN`
          • `JSON.ARRPOP`
          • `JSON.ARRTRIM`
          • `JSON.CLEAR`
          • `JSON.DEBUG MEMORY`
          • `JSON.DEBUG`
          • `JSON.DEL`
          • `JSON.FORGET`
          • `JSON.GET`
          • `JSON.MERGE`
          • `JSON.MGET`
          • `JSON.MSET`
          • `JSON.NUMINCRBY`
          • `JSON.OBJKEYS`
          • `JSON.OBJLEN`
          • `JSON.SET`
          • `JSON.STRAPPEND`
          • `JSON.STRLEN`
          • `JSON.TOGGLE`
          • `JSON.TYPE`
    • `redis json`的`clients`
    • `redis json`的使用场景 https://redis.io/docs/latest/develop/data-types/json/use_cases/

Redis JSON

redis在6.x开始支持json
注意:json可以说是在http接口返回值的网红,之所以说是网红,是因为之前不是json,之后当然也就未可知也。
注意我上面只说了在http接口返回值的场景。实际上在内部的rpc调用,也有用json传输的,不过这比较小众。
更多使用在存储数据场景下,也是泛滥的场景,如mysql、es、mongodb、redis中,json似乎包罗万象了。
⚠️注意!这不是好事,灵活性的提升必定伴随着其他如规范性、稳定性等问题的到来,
如果还没有到来,那肯定是时间还不够长、业务还没有增长。

redis官网介绍 https://redis.io/docs/latest/develop/data-types/json/

先说说JSON是什么

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

再说说JSON Path

JSONPath是一种用于从JSON文档中提取信息的查询语言,类似于XML的XPath。

先推荐两个网站

JsonPath语法 https://goessner.net/articles/JsonPath/
JsonPath在线 https://jsonpath.com/
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

JSONPath JAVA clents

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.7.0</version> <!-- 请检查是否有更新的版本 -->
</dependency>

Redis JSON 安装

  1. 使用redis-stack
    docker run -it --name redis-stack -p 6379:6379 redis/redis-stack:latest
  2. 使用redis 6.x及以上,配置loadMoudle
    本文使用redis-stack,如下图,可以看到启动的时候自动加载了json模块,
    除此之外还有timeseries、search等模块

在这里插入图片描述

内存

官网内存 https://redis.io/docs/latest/develop/data-types/json/ram/
在这里插入图片描述
可以看到json的内存还是挺恐怖的,哈哈哈,用不上还是用string吧…
keyvalue都占用内存

json命令语法

json命令大全 https://redis.io/docs/latest/commands/?group=json
在这里插入图片描述

命令url

indexcommandurl
0JSON.ARRAPPENDhttps://redis.io/docs/latest/commands/json.arrappend/
1JSON.ARRINDEXhttps://redis.io/docs/latest/commands/json.arrindex/
2JSON.ARRINSERThttps://redis.io/docs/latest/commands/json.arrinsert/
3JSON.ARRLENhttps://redis.io/docs/latest/commands/json.arrlen/
4JSON.ARRPOPhttps://redis.io/docs/latest/commands/json.arrpop/
5JSON.ARRTRIMhttps://redis.io/docs/latest/commands/json.arrtrim/
6JSON.CLEARhttps://redis.io/docs/latest/commands/json.clear/
7JSON.DEBUGhttps://redis.io/docs/latest/commands/json.debug/
8JSON.DEBUG MEMORYhttps://redis.io/docs/latest/commands/json.debug-memory/
9JSON.DELhttps://redis.io/docs/latest/commands/json.del/
10JSON.FORGEThttps://redis.io/docs/latest/commands/json.forget/
11JSON.GEThttps://redis.io/docs/latest/commands/json.get/
12JSON.MERGEhttps://redis.io/docs/latest/commands/json.merge/
13JSON.MGEThttps://redis.io/docs/latest/commands/json.mget/
14JSON.MSEThttps://redis.io/docs/latest/commands/json.mset/
15JSON.NUMINCRBYhttps://redis.io/docs/latest/commands/json.numincrby/
16JSON.NUMMULTBYhttps://redis.io/docs/latest/commands/json.nummultby/
17JSON.OBJKEYShttps://redis.io/docs/latest/commands/json.objkeys/
18JSON.OBJLENhttps://redis.io/docs/latest/commands/json.objlen/
19JSON.RESPhttps://redis.io/docs/latest/commands/json.resp/
20JSON.SEThttps://redis.io/docs/latest/commands/json.set/
21JSON.STRAPPENDhttps://redis.io/docs/latest/commands/json.strappend/
22JSON.STRLENhttps://redis.io/docs/latest/commands/json.strlen/
23JSON.TOGGLEhttps://redis.io/docs/latest/commands/json.toggle/
24JSON.TYPEhttps://redis.io/docs/latest/commands/json.type/

命令解释

JSON.ARRAPPEND
commandJSON.ARRAPPEND
syntaxJSON.ARRAPPEND key [path] value [value ...]
description

Append the json values into the array at path after the last element in it

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrappend/
JSON.ARRINDEX
commandJSON.ARRINDEX
syntaxJSON.ARRINDEX key path value [start [stop]]
description

Search for the first occurrence of a JSON value in an array

time complexityO(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrindex/
JSON.ARRINSERT
commandJSON.ARRINSERT
syntaxJSON.ARRINSERT key path index value [value ...]
description

Insert the json values into the array at path before the index (shifts to the right)

time complexityO(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrinsert/
JSON.ARRLEN
commandJSON.ARRLEN
syntaxJSON.ARRLEN key [path]
description

Report the length of the JSON array at path in key

time complexityO(1) where path is evaluated to a single value, O(N) where path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrlen/
JSON.ARRPOP
commandJSON.ARRPOP
syntaxJSON.ARRPOP key [path [index]]
description

Remove and return an element from the index in the array

time complexityO(N) when path is evaluated to a single value where N is the size of the array and the specified index is not the last element, O(1) when path is evaluated to a single value and the specified index is the last element, or O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrpop/
JSON.ARRTRIM
commandJSON.ARRTRIM
syntaxJSON.ARRTRIM key path start stop
description

Trim an array so that it contains only the specified inclusive range of elements

time complexityO(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.arrtrim/
JSON.CLEAR
commandJSON.CLEAR
syntaxJSON.CLEAR key [path]
description

Clear container values (arrays/objects) and set numeric values to 0

time complexityO(N) when path is evaluated to a single value where N is the size of the values, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 2.0.0
urlhttps://redis.io/docs/latest/commands/json.clear/
JSON.DEBUG MEMORY
commandJSON.DEBUG MEMORY
syntaxJSON.DEBUG MEMORY key [path]
description

Report a value’s memory usage in bytes

time complexityO(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.debug-memory/
JSON.DEBUG
commandJSON.DEBUG
syntaxJSON.DEBUG
description

This is a container command for debugging related tasks.

time complexityN/A
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.debug/
JSON.DEL
commandJSON.DEL
syntaxJSON.DEL key [path]
description

Delete a value

time complexityO(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.del/
JSON.FORGET
commandJSON.FORGET
syntaxJSON.FORGET key [path]
description

See JSON.DEL.

time complexityO(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.forget/
JSON.GET
commandJSON.GET
syntaxJSON.GET key [INDENTÂ indent] [NEWLINEÂ newline] [SPACEÂ space] [path [path ...]]
description

Return the value at path in JSON serialized form

time complexityO(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.get/
JSON.MERGE
commandJSON.MERGE
syntaxJSON.MERGE key path value
description

Merge a given JSON value into matching paths. Consequently, JSON values at matching paths are updated, deleted, or expanded with new children.

time complexityO(M+N) when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key
available inRedis Stack / JSON 2.6.0
urlhttps://redis.io/docs/latest/commands/json.merge/
JSON.MGET
commandJSON.MGET
syntaxJSON.MGET key [key ...] path
description

Return the values at path from multiple key arguments

time complexityO(M*N) when path is evaluated to a single value where M is the number of keys and N is the size of the value, O(N1+N2+…+Nm) when path is evaluated to multiple values where m is the number of keys and Ni is the size of the i-th key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.mget/
JSON.MSET
commandJSON.MSET
syntaxJSON.MSET key path value [key path value ...]
description

Set or update one or more JSON values according to the specified key-path-value triplets

time complexityO(K*(M+N)) where k is the number of keys in the command, when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, or O(K*(M+N)) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key
available inRedis Stack / JSON 2.6.0
urlhttps://redis.io/docs/latest/commands/json.mset/
JSON.NUMINCRBY
commandJSON.NUMINCRBY
syntaxJSON.NUMINCRBY key path value
description

Increment the number value stored at path by number

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.numincrby/
JSON.OBJKEYS
commandJSON.OBJKEYS
syntaxJSON.OBJKEYS key [path]
description

Return the keys in the object that’s referenced by path

time complexityO(N) when path is evaluated to a single value, where N is the number of keys in the object, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.objkeys/
JSON.OBJLEN
commandJSON.OBJLEN
syntaxJSON.OBJLEN key [path]
description

Report the number of keys in the JSON object at path in key

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.objlen/
JSON.SET
commandJSON.SET
syntaxJSON.SET key path value [NX | XX]
description

Set the JSON value at path in key

time complexityO(M+N) when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.set/
JSON.STRAPPEND
commandJSON.STRAPPEND
syntaxJSON.STRAPPEND key [path] value
description

Append the json-string values to the string at path

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.strappend/
JSON.STRLEN
commandJSON.STRLEN
syntaxJSON.STRLEN key [path]
description

Report the length of the JSON String at path in key

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.strlen/
JSON.TOGGLE
commandJSON.TOGGLE
syntaxJSON.TOGGLE key path
description

Toggle a Boolean value stored at path

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 2.0.0
urlhttps://redis.io/docs/latest/commands/json.toggle/
JSON.TYPE
commandJSON.TYPE
syntaxJSON.TYPE key [path]
description

Report the type of JSON value at path

time complexityO(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
available inRedis Stack / JSON 1.0.0
urlhttps://redis.io/docs/latest/commands/json.type/

  • JSON.ARRAPPEND
127.0.0.1:6379> json.set blog $ '{"user":{"id":222078,"nick":"TOM"},"id":1000,"content":"一起学习redis json吧","delete":false,"like":300,"tags":["redis","json"]}'
127.0.0.1:6379> json.arrappend blog $.tags '"backend"' '"midware"'
4
127.0.0.1:6379> json.get blog INDENT "\t" NEWLINE "\n" SPACE " " $
[
	{
		"user": {
			"id": 222078,
			"nick": "TOM"
		},
		"id": 1000,
		"content": "一起学习redis json吧",
		"delete": false,
		"like": 300,
		"tags": [
			"redis",
			"json",
			"backend",
			"midware"
		]
	}
]
127.0.0.1:6379> 
  • JSON.ARRINSERT
  • JSON.STRAPPEND

  • JSON.ARRPOP
  • JSON.ARRTRIM
  • JSON.CLEAR
  • JSON.DEL
  • JSON.FORGET

  • JSON.SET
  • JSON.MSET
  • JSON.NUMINCRBY
  • JSON.NUMMULTBY
  • JSON.MERGE
  • JSON.TOGGLE

  • JSON.ARRLEN
  • JSON.ARRINDEX
    127.0.0.1:6379> JSON.SET tom $ '["black","silver"]'
    OK
    127.0.0.1:6379>
    127.0.0.1:6379>
    127.0.0.1:6379>
    127.0.0.1:6379> JSON.ARRINDEX tom $ '"black"'
    1) (integer) 0
       127.0.0.1:6379> JSON.ARRINDEX tom $ '"silver"'
    1) (integer) 1
    
  • JSON.DEBUG
  • JSON.DEBUG MEMORY
  • JSON.GET
  • JSON.MGET
  • JSON.OBJKEYS
  • JSON.OBJLEN
  • JSON.RESP (deprecated)
  • JSON.STRLEN
  • JSON.TYPE

redis jsonclients

https://github.com/RedisJSON/RedisJSON?tab=readme-ov-file

redis json的使用场景 https://redis.io/docs/latest/develop/data-types/json/use_cases/

  • 从json中查询或搜索
  • 原子部分更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894410.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单例模式(自动加载)

目录 介绍 使用 在脚本中写一个函数 让一个「自定义场景」作为单例「自动加载」 介绍 单例模式是编程中的一种设计思想&#xff0c;是为了解决某些编程语言中没有全局变量概念而产生的这对于实现某种模块非常好用 比如玩家信息&#xff0c;有时候&#xff0c;游戏中的很多…

数组中超过一半的元素

有一个数组&#xff0c;找出其中数量超过的元素是谁。比如数组 [3, 2, 3] &#xff0c;输出 3。 这个问题要解起来不难&#xff0c;暴力计数&#xff0c;转为 map&#xff0c;排序都能解决。但是他们的空间复杂度都不低&#xff0c;即便排序能做到 O(1) 的空间复杂度&#xff…

计算机系统简介

一、计算机的软硬件概念 1.硬件&#xff1a;计算机的实体&#xff0c;如主机、外设、硬盘、显卡等。 2.软件&#xff1a;由具有各类特殊功能的信息&#xff08;程序&#xff09;组成。 系统软件&#xff1a;用来管理整个计算机系统&#xff0c;如语言处理程序、操作系统、服…

电影评论网站:Spring Boot技术栈应用

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理电影评论网站的相关信息成为必然。开发合适…

安装macOS Sequoia注意事项

随着macOS Sequoia的发布&#xff0c;许多Mac用户开始计划升级到这一最新版本。然而&#xff0c;升级系统并非简单点击“升级”按钮即可。在安装新系统之前&#xff0c;有一些关键的注意事项可以帮助你避免潜在的问题&#xff0c;确保顺利过渡到macOS Sequoia。本文将详细介绍在…

FPGA图像处理之三行缓存

文章目录 一、前言二、FPGA实现三行缓存的架构三、Verilog代码实现四、仿真验证五、输入图像数据进行仿真验证 一、前言 在 FPGA 做图像处理时&#xff0c;行缓存是一个非常重要的一个步骤&#xff0c;因为图像输入还有输出都是一行一行进行的&#xff0c;即处理完一行后再处理…

实现uniapp天地图边界范围覆盖

前言&#xff1a; 在uniapp中&#xff0c;难免会遇到使用地图展示的功能&#xff0c;但是百度谷歌这些收费的显然对于大部分开源节流的开发者是不愿意接受的&#xff0c;所以天地图则是最佳选择。 此篇文章&#xff0c;详细的实现地图展示功能&#xff0c;并且可以自定义容器宽…

Python画笔案例-086 turtle 多线程绘画

1、turtle 多线程绘画 通过 python 的turtle 库 多线程绘画,如下图: 2、实现代码 turtle 库 多线程绘画,以下为实现代码: """多线程绘画.py """ from random import random,randint from turtle import Turtle,Screen from threading

SpringDataRedis快速入门

SpringDataRedis 什么是SpringDataRedis SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis SpringDataRedis中提供了RedsiTemplate工具类,其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类…

redis基础—主从同步原理与配置以及哨兵模式

一&#xff1a;redis的主从同步原理 1.slave节点发送同步请求到master节点 2.slave节点通过master节点的认证开始进行同步 3.认证结束后&#xff0c;master节点开启bgsave进程 4.master节点会开启bgsave进程发送内存快照rbd到slave节点&#xff0c;在此过程中是异步操作&…

【原创】java+springboot+mysql在线文件管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Docker学习笔记(2)- Docker的安装

1. Docker的基本组成 镜像&#xff08;image&#xff09;&#xff1a;Docker镜像就像是一个模板&#xff0c;可以通过这个模板来创建容器服务。通过一个镜像可以创建多个容器。最终服务运行或者项目运行就是在容器中。容器&#xff08;container&#xff09;&#xff1a;Docker…

Spring6梳理14——依赖注入之P命名空间

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 ①搭建模块 ②引入配置文件 ③创建bean-dip.xml文件 ④创建课程类文件 ⑤创建学生…

基于SpringBoot+Vue+uniapp微信小程序的校园反诈骗微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

day-69 使二进制数组全部等于 1 的最少操作次数 II

思路 与3191. 使二进制数组全部等于 1 的最少操作次数 I思路类似&#xff0c;区别在于该题每次将下标i开始一直到数组末尾所有元素反转&#xff0c;所以我们用一个变量可以统计翻转次数 解题过程 从左向右遍历数组的过程中&#xff0c;有两种情况需要进行翻转&#xff1a;1.当…

【Linux】内存文件系统的I/O、重定向

文章目录 1. 系统中的文件2. 回顾C中的文件接口3. 文件类的系统调用3.1 open3.2 文件描述符 4. IO的基本过程5.重定向5.1 引入重定向5.2 系统中的重定向接口 6. 缓冲区问题7. 简单版shell的实现 1. 系统中的文件 在学习完Linux权限后&#xff0c;我们清楚的知道&#xff1a;文…

【JVM】内存模型

文章目录 内存模型的基本概念案例 程序计数器栈Java虚拟机栈局部变量表栈帧中局部变量表的实际状态栈帧中存放的数据有哪些 操作数栈帧数据 本地方法栈 堆堆空间是如何进行管理的? 方法区静态变量存储 直接内存直接内存的作用 内存模型的基本概念 在前面的学习中,我们知道了字…

论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction

论文来源&#xff1a;ACL 2022 论文地址&#xff1a;https://aclanthology.org/2022.acl-long.397.pdf 论文代码&#xff1a;https://github.com/fc-liu/MCMN &#xff08;笔记不易&#xff0c;请勿恶意转载抄袭&#xff01;&#xff01;&#xff01;&#xff09; 目录 A…

从头预训练一只迷你 LLaMA 3_llama3 预训练预处理

我将向你展示如何使用 LLama 3.1&#xff08;一个本地运行的模型&#xff09;来执行GraphRAG操作&#xff0c;总共就50号代码。。。 首先&#xff0c;什么是GraphRAG&#xff1f;GraphRAG是一种通过考虑实体和文档之间的关系来执行检索增强生成的方式&#xff0c;关键概念是节…

Elasticsearch学习笔记(七)安装并配置Metricbeat

Metricbeat 是一个轻量级的开源数据采集器&#xff0c;专门用于收集操作系统和服务的指标&#xff08;metrics&#xff09;。它是 Elastic Stack&#xff08;即 ELK Stack&#xff09;的一部分&#xff0c;通常用于监控系统性能、收集应用程序和服务器的性能指标&#xff0c;并…