2024.1.11 关于 Jedis 库操作 Redis 基本演示

 目录

引言

通用命令

SET & GET

EXISTS & DEL

KEYS

EXPIRE & TTL

TYPE

String 类型命令

 MGET & MSET

GETRANGE & SETRANGE 

APPEND

INCR & DECR

List 类型命令

LPUSH & LRANG 

LPOP & LPOP

BLPOP & BRPOP

LLEN

Set 类型命令

SADD & SMEMBERS

SISMEMBERS

SCARD

SPOP

SINTER

SINTERSTORE

Hash 类型命令 

HSET & HGET

HEXISTS

HDEL

HKEYS & HVALS

HMGET & HMSET

 ZSet 类型命令

ZADD & ZRANGE

ZCARD

ZREM

ZSCORE

ZRANK


引言

  • Jedis 库的本质就是针对 Redis 的各种命令进行了封装
  • 调用某个方法就相当于在 Redis 客户端中敲下了对应的命令
  • 下文将介绍 Redis 命名在代码中的操作,但不会覆盖到所有的命令,只会挑一些比较重要的、代表性的命令

通用命令

SET & GET

public static void test1(Jedis jedis) {
        System.out.println("get 和 set 的使用");
//        先清空数据库,要避免上一组测试的残留数据影响到下一组测试的结果
        jedis.flushAll();

        jedis.set("key","111");
        jedis.set("key2","222");
//        通过创建 SetParams 的对象,给 set 命令设置参数和选项
        SetParams params = new SetParams();
        params.ex(10);
//        此处设置 XX 选项
//        表示只有当 key 存在时才设置,key 不存在时直接返回 nil
        params.xx();
//        注意此时 set 的 key 在上述代码中已经设置过了
        jedis.set("key","333",params);

        SetParams params2 = new SetParams();
        params2.ex(10);
        params2.xx();
//        注意此时 set 的 key4 并未在上述代码中设置过
        jedis.set("key4","444",params2);

        String value = jedis.get("key");
        System.out.println("此处预期 value = 333, 实际 value = " + value);

        String value4 = jedis.get("key4");
        System.out.println("此处预期 value4 = null, 实际 value4 = " + value4);
}

 运行结果:


EXISTS & DEL

public static void test2(Jedis jedis) {
        System.out.println("exists 和 del 的使用");
        jedis.flushAll();

        jedis.set("key","111");
        jedis.set("key2","222");
        jedis.set("key3","333");
//        判断 key 是否存在
        boolean result = jedis.exists("key");
        System.out.println("此处预期 result = ture, 实际 result = " + result);
//        在此处直接将 key 删除
        long result2 = jedis.del("key");
        System.out.println("此处预期 result2 = 1, 实际 result2 = " + result2);
//        重新判断 key 是否存在
        result = jedis.exists("key");
        System.out.println("此处预期 result = false, 实际 result =  " + result);
//        使用 del 方法删除多个 key (变长参数)
        result2 = jedis.del("key2","key3");
        System.out.println("此处预期 result2 = 2, 实际 result2 = " + result2);
}

运行结果:


KEYS

public static void test3(Jedis jedis) {
        System.out.println("keys 的使用");
        jedis.flushAll();

        jedis.set("key","111");
        jedis.set("key2","222");
        jedis.set("key3","333");
        jedis.set("key4","444");
//        使用 keys 方法直接获取到 redis 中所有键
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
}

运行结果:


EXPIRE & TTL

public static void test4(Jedis jedis) throws InterruptedException {
        System.out.println("expire 和 ttl 的使用");
        jedis.flushAll();

        jedis.set("key","111");
//        使用 expire 方法给 key 设置过期时间 10秒
        jedis.expire("key",10);
//        休眠 3秒,再继续执行代码
        Thread.sleep(3000);
//        使用 ttl 方法获取到 key 的过期时间
        long time = jedis.ttl("key");
        System.out.println("此处预期 time = 7, 实际 time =  " + time);
}

运行结果:


TYPE

public static void test5(Jedis jedis) throws InterruptedException {
        System.out.println("type 的使用");
        jedis.flushAll();

        jedis.set("key","111");
        String type = jedis.type("key");
        System.out.println("此处预期 type = sting , 实际 type =  " + type);

        jedis.lpush("key2","111","222","333");
        String type2 = jedis.type("key2");
        System.out.println("此处预期 type2 = list , 实际 type2 =  " + type2);

        jedis.hset("key3","f1","111");
        String type3 = jedis.type("key3");
        System.out.println("此处预期 type3 = hash , 实际 type3 =  " + type3);

        jedis.sadd("key4","111","222","333");
        String type4 = jedis.type("key4");
        System.out.println("此处预期 type4 = set , 实际 type4 =  " + type4);

        jedis.zadd("key5",10,"zhangsan");
        String type5 = jedis.type("key5");
        System.out.println("此处预期 type5 = zset , 实际 type5 =  " + type5);
}

运行结果:

String 类型命令

 MGET & MSET

public static void test1(Jedis jedis) {
        System.out.println("mget 和 mset 的使用");
        jedis.flushAll();

        jedis.mset("key1","111","key2","222","key3","333");
//        此处多个 key 得到的 value 的顺序都是和 key 匹配的
//        如果某个 key 在 redis 上不存在,对应的 value 使用 null 表示
        List<String> values = jedis.mget("key1","key2","key100","key3");
        System.out.println("values: " + values);
}

运行结果:


GETRANGE & SETRANGE 

public static void test2(Jedis jedis) {
        System.out.println("getrange 和 setrange 的使用");
        jedis.flushAll();

        jedis.set("key","abcdefghijk");
        String result = jedis.getrange("key",2,5);
        System.out.println("此处预期 result = cdef, 实际 result = " + result);

        jedis.setrange("key",2,"xyz");
        String value = jedis.get("key");
        System.out.println("此处预期 value = abxyzfghijk, 实际 value = " + value);
}

运行结果:


APPEND

public static void test3(Jedis jedis) {
        System.out.println("append 的使用");
        jedis.flushAll();

        jedis.set("key","abcdef");
        jedis.append("key","ghij");

        String value = jedis.get("key");
        System.out.println("此处预期 value = abcdefghij, 实际 value = " + value);
}

运行结果:


INCR & DECR

public static void test4(Jedis jedis) {
        System.out.println("incr 和 decr 的使用");
        jedis.flushAll();

        jedis.set("key","100");
        
        long result = jedis.incr("key");
        System.out.println("此处预期 result = 101, 实际 result = " + result);
        
        String value = jedis.get("key");
        System.out.println("此处预期 value = 101, 实际 value = " + value);

        result = jedis.decr("key");
        System.out.println("此处预期 result = 100, 实际 result = " + result);

        value = jedis.get("key");
        System.out.println("此处预期 value = 100, 实际 value = " + value);
}

运行结果:

List 类型命令

LPUSH & LRANG 

public static void test1(Jedis jedis) {
        System.out.println("lpush、rpush 和 lrange 的使用");
        jedis.flushAll();

        jedis.lpush("key","111","222","333");

        jedis.rpush("key2","111","222","333");

        List<String> result = jedis.lrange("key",0,-1);
        System.out.println("采用 lpush 的 result = " +result);

        List<String> result2 = jedis.lrange("key2",0,-1);
        System.out.println("采用 rpush 的 result = " + result2);
}

运行结果:


LPOP & LPOP

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class RedisDemoList {
    public static void test2(Jedis jedis) {
        System.out.println("lpop、rpop 的使用");
        jedis.flushAll();

        jedis.rpush("key","111","222","333");

        String result = jedis.lpop("key");
        System.out.println("采用 lpop 的预期 result = 111, 实际 result = " + result);

        result = jedis.rpop("key");
        System.out.println("采用 rpop 的预期 result = 333, 实际 result = " + result);
    }

    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()) {
            test2(jedis);
        }
    }
}

运行结果:


BLPOP & BRPOP

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

public class RedisDemoList {
    public static void test3(Jedis jedis) {
        System.out.println("blpop 的使用");
        jedis.flushAll();

//        返回结果是一个 "二元组" 有个是从哪个 key 对应的 list 中删除的,一个删除的元素是什么
        List<String> results = jedis.blpop(100,"key");
        System.out.println("results.get(0) = " + results.get(0));
        System.out.println("results.get(1) = " + results.get(1));
    }

    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()) {
            test3(jedis);
        }
    }
}

运行结果:


LLEN

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class RedisDemoList {
    public static void test4(Jedis jedis) {
        System.out.println("llen 的使用");
        jedis.flushAll();

        jedis.rpush("key","111","222","333");
        long len = jedis.llen("key");
        System.out.println("此处预期 len = 3, 实际 len = " + len);
    }

    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()) {
//            test3(jedis);
            test4(jedis);
        }
    }
}

运行结果:

Set 类型命令

SADD & SMEMBERS

public static void test1(Jedis jedis) {
        System.out.println("sadd 和 smembers 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333");
        Set<String> result = jedis.smembers("key");
        System.out.println("result: " + result);
}

运行结果:


SISMEMBERS

public static void test2(Jedis jedis) {
        System.out.println("sismembers 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333");
        boolean result = jedis.sismember("key","111");
        System.out.println("此处预期 result = true, 实际 result = " + result);
        result = jedis.sismember("key","100");
        System.out.println("此处预期 result = false, 实际 result = " + result);
}

运行结果:


SCARD

public static void test3(Jedis jedis) {
        System.out.println("scard 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333");
        long result = jedis.scard("key");
        System.out.println("此处预期 result = 3, 实际 result = " + result);
}

运行结果:


SPOP

public static void test4(Jedis jedis) {
        System.out.println("spop 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333","444","555");
        String result = jedis.spop("key");
        System.out.println("此处将随机删除一个元素, result = " + result);
}

运行结果:


SINTER

public static void test4(Jedis jedis) {
        System.out.println("spop 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333","444","555");
        String result = jedis.spop("key");
        System.out.println("此处将随机删除一个元素, result = " + result);
}

运行结果:


SINTERSTORE

public static void test6(Jedis jedis) {
        System.out.println("sinterstore 的使用");
        jedis.flushAll();

        jedis.sadd("key","111","222","333");
        jedis.sadd("key2","111","222","444");

        long len = jedis.sinterstore("key3","key","key2");
        System.out.println("此处预期 len = 2, 实际 len = " + len);

        Set<String> result = jedis.smembers("key3");
        System.out.println("result = " + result);
}

运行结果:

Hash 类型命令 

HSET & HGET

public static void test1(Jedis jedis) {
        System.out.println("hset 和 hget 的使用");
        jedis.flushAll();
//        一次性设置单个
        jedis.hset("key","f1","111");
//        一次性设置多个
        HashMap<String,String> fields = new HashMap<>();
        fields.put("f2","222");
        fields.put("f3","333");
        jedis.hset("key",fields);

        String result = jedis.hget("key","f1");
        System.out.println("此处预期 result = 111, 实际 result = " + result);

        result = jedis.hget("key","f100");
        System.out.println("此处预期 result = null, 实际 result = " + result);
}

运行结果:


HEXISTS

public static void test2(Jedis jedis) {
        System.out.println("hexists 的使用");
        jedis.flushAll();

        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");

        boolean result = jedis.hexists("key","f1");
        System.out.println("此处预期 result = ture, 实际 result = " + result);

        result = jedis.hexists("key","f100");
        System.out.println("此处预期 result = false, 实际 result = " + result);
}

运行结果:


HDEL

public static void test3(Jedis jedis) {
        System.out.println("hdel 的使用");
        jedis.flushAll();

        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");

        long result = jedis.hdel("key","f1","f2");
        System.out.println("此处预期 result = 1, 实际 result = " + result);

        boolean exists = jedis.hexists("key","f1");
        System.out.println("此处预期 exists = false, 实际 exists = " + exists);
        exists = jedis.hexists("key","f2");
        System.out.println("此处预期 exists = false, 实际 exists = " + exists);
}

运行结果:


HKEYS & HVALS

public static void test4(Jedis jedis) {
        System.out.println("hkeys 和 hvals 的使用");
        jedis.flushAll();

        jedis.hset("key","f1","111");
        jedis.hset("key","f2","111");
        jedis.hset("key","f3","333");

        Set<String> fields = jedis.hkeys("key");
        System.out.println("fields = " + fields);

        List<String> vals = jedis.hvals("key");
        System.out.println("vals = " + vals);
}

运行结果:


HMGET & HMSET

public static void test5(Jedis jedis) {
        System.out.println("hmget 和 hmset 的使用");
        jedis.flushAll();

        HashMap<String,String> map = new HashMap<>();
        map.put("f1","111");
        map.put("f2","222");
        map.put("f3","333");
        jedis.hmset("key",map);

        List<String> vals = jedis.hmget("key","f3","f1","f2");
//        此时返回元素的顺序一定为 我们自己所指定 field 的先后顺序
        System.out.println("此处预期 vals = [333,111,222], 实际 vals = " + vals);
}

运行结果:

 ZSet 类型命令

ZADD & ZRANGE

public static void test1(Jedis jedis) {
        System.out.println("zadd 和 zrange 的使用");
        jedis.flushAll();

        jedis.zadd("key",10,"zhangsan");
        Map<String,Double> map = new HashMap<>();
        map.put("lisi",20.0);
        map.put("wangwu",30.0);
        jedis.zadd("key",map);

        List<String> members = jedis.zrange("key",0,-1);
        System.out.println("members = " + members);

        List<Tuple> membersWithScore = jedis.zrangeWithScores("key",0,-1);
        System.out.println("membersWithScore = " + membersWithScore);

        String member = membersWithScore.get(0).getElement();
        double score = membersWithScore.get(0).getScore();
        System.out.println("member = " + member + ", score" + score);
}

运行结果:


ZCARD

public static void test2(Jedis jedis) {
        System.out.println("zcard 的使用");
        jedis.flushAll();

        jedis.zadd("key",10,"zhangsan");
        jedis.zadd("key",20,"lisi");
        jedis.zadd("key",30,"wangwu");

        long len = jedis.zcard("key");
        System.out.println("此处预期 len = 3, 实际 len = " + len);
}

运行结果:


ZREM

public static void test3(Jedis jedis) {
        System.out.println("zrem 的使用");
        jedis.flushAll();

        jedis.zadd("key",10,"zhangsan");
        jedis.zadd("key",20,"lisi");
        jedis.zadd("key",30,"wangwu");

        long n = jedis.zrem("key","zhangsan");
        System.out.println("此处预期 n = 1, 实际 n = " + n);

        List<Tuple> membersWithScore = jedis.zrangeWithScores("key",0,-1);
        System.out.println("membersWithScore = " + membersWithScore);
}

运行结果:


ZSCORE

public static void test4(Jedis jedis) {
        System.out.println("zscore 的使用");
        jedis.flushAll();

        jedis.zadd("key",10,"zhangsan");
        jedis.zadd("key",20,"lisi");
        jedis.zadd("key",30,"wangwu");

        Double score = jedis.zscore("key","zhangsan");
        System.out.println("此处预期 score = 10.0, 实际 n = " + score);

        score = jedis.zscore("key","zhaoliu");
        System.out.println("此处预期 score = null, 实际 n = " + score);
}

运行结果:


ZRANK

public static void test5(Jedis jedis) {
        System.out.println("zrank 的使用");
        jedis.flushAll();

        jedis.zadd("key",10,"zhangsan");
        jedis.zadd("key",20,"lisi");
        jedis.zadd("key",30,"wangwu");

        Long rank = jedis.zrank("key","zhangsan");
        System.out.println("此处预期 score = 1, 实际 n = " + rank);

        rank = jedis.zrank("key","zhaoliu");
        System.out.println("此处预期 score = null, 实际 n = " + rank);
}

运行结果:

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

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

相关文章

时间序列数据库选型: influxdb; netdiscover列出docker实例们的ip

influxdb influxdb: 有收费版本、有开源版本 influxdb 安装、启动(docker) docker run -itd --name influxdb-dev -p 8086:8086 influxdb #influxdb的web客户端(端口8003)被去掉了 #8006是web-service端口#docker exec -it influxdb-dev bashinfluxdb 自带web界面 从后面的…

【设计模式-04】Factory工厂模式

简要描述 简单工厂静态工厂工厂方法 FactoryMethod 产品维度扩展 抽象工厂 产品一族进行扩展Spring IOC 一、工厂的定义 任何可以产生对象的方法或类&#xff0c;都可以称之为工厂单例也是一种工厂不可咬文嚼字&#xff0c;死扣概念为什么有了new之后&#xff0c;还要有工厂&am…

AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(七)

08.什么是模块化&#xff1f; CommonJS 标准 09.ECMAScript 标准 - 默认导出和导入 10.ECMAScript 标准 - 命名导出和导入 11.包的概念 实操&#xff1a; server.js utils/lib/index.js utils/package.json 12.npm - 软件包管理器 13.npm - 安装所有依赖 从别处&#xff08;网…

RTSP网络视频协议

一.RTSP网络视频协议介绍 RTSP是类似HTTP的应用层协议&#xff0c;一个典型的流媒体框架网络体系可参考下图&#xff0c;其中rtsp主要用于控制命令&#xff0c;rtcp主要用于视频质量的反馈&#xff0c;rtp用于视频、音频流从传输。 1、RTSP&#xff08;Real Time Streaming P…

利用gulp工具对常规web项目进行压缩打包

前言 对于一个常规的web项目&#xff0c;如下项目目录 |- imgs | - img1.png | - img2.png |- js | - user.js | - utils.js |- css | - index.css | - user.css |- html | - user.html |- index.html可以使用各种构建工具&#xff08;如webpack、gulp、grunt等&#xff09;来…

IBM X3750 M4服务器主板故障全国协助处理

2023年12月31这天中午看到有位网络朋友加我&#xff0c;通过后该用户反馈说是有一台IBM System x3750 M4服务器有故障&#xff0c;现在无法开机。希望我们工程师协助他检测 分析 定位该故障问题原因和处理方案。 如上图所示&#xff1a;经过工程师与用户排查&#xff0c;发现该…

instanceof、对象类型转化、static关键字

instanceof 与 对象类型转换 instanceof是判断一个对象是否与一个类有关系的关键字 先看引用类型&#xff0c;再看实际类型 *例子&#xff1a;obj instanceof A 先看obj的类型是否与A有关联&#xff0c;无关联则报错&#xff0c;有关联则判断obj的实际类型 因为obj的实际类…

SwiftUI之深入解析布局协议

一、什么是布局协议&#xff1f; 采用布局协议类型的任务&#xff0c;是告诉 SwiftUI 如何放置一组视图&#xff0c;需要多少空间。这类型常常被作为视图容器&#xff0c;虽然布局协议是 2022 年新推出的&#xff08;至少公开来说&#xff09;&#xff0c;但是我们在第一天使用…

【Web】token机制

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Web ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 机制基本&#xff1a; 优势&#xff1a; 结语 我的其他博客 前言 在当今互联网时代&#xff0c;安全、高效的用户身份验证和资源授…

87.乐理基础-记号篇-反复记号(一)反复、跳房子

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;86.乐理基础-记号篇-速度记号-CSDN博客 首先是反复记号表总结图&#xff1a; 当前是写前两个记号&#xff0c;其余记号后面写&#xff1a;这些反复记号最主要的目的很简单&#xff0c;还是为了节约纸张&#xff0c…

python如何安装numpy

1. 根据python版本下载相应版本的numpy保存至D:\Program Files (x86)\Python\Python37\Scripts\ numpy下载地址 2. winR&#xff0c;输入cmd&#xff0c;打开命令行窗口&#xff0c;定位到python的安装目录 3. 输入python -m pip install numpy或定位到目录&#xff1a;D:\P…

【C++】:C++中的STL序列式容器vector源码剖析

⛅️一 vector概述 vector的使用语法可以参考文章&#xff1a;​ 总的来说&#xff1a;vector是可变大小数组 特点&#xff1a; 支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 元素保存在连续的内存空间中&#xff0c;因此通过下标取值非常快 在容器中间位置添加…

Laravel 框架中队列的使用

概述 Laravel 框架内置了强大的队列系统&#xff0c;用于处理异步任务、提高系统性能等。队列可以让任务异步执行&#xff0c;而不会阻塞当前进程&#xff0c;可以提高系统的处理能力。 Laravel 的队列系统支持多种驱动&#xff0c;如 Redis、Beanstalkd、SQS 等&#xff0c;…

VSCode 搭建Java开发环境

笔者使用最多的语言是C&#xff0c;也使用过不少其它语言&#xff0c;像Erlang&#xff0c;Python&#xff0c;Lua&#xff0c;C#等等&#xff0c;目前项目中在使用Go&#xff0c;但是没使用过Java。最近看到C#夺冠&#xff0c;首次荣获 TIOBE 年度编程语言&#xff0c;同时也看…

计算机缺失msvcp140.dll的修复教程,教你快速解决dll问题

“针对计算机系统中出现的msvcp140.dll文件丢失问题&#xff0c;小编将详细阐述一系列有效的解决方法。首先&#xff0c;msvcp140.dll是Microsoft Visual C Redistributable Package中的一个关键动态链接库文件&#xff0c;对于许多应用程序的正常运行至关重要。当系统提示该文…

关于Python里xlwings库对Excel表格的操作(三十一)

这篇小笔记主要记录如何【如何使用“Chart类”、“Api类"和“Axes函数”设置绘图区外框线型、颜色、粗细及填充颜色】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安…

【DevOps-08-3】Jenkins容器内部使用Docker

一、简要描述 构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可。 设置Jenkins容器使用宿主机Docker。 二、配置和操作步骤 1、修改宿主机docker.sock权限 # 修改docker.sock 用户和用户组都为root $ …

计算机找不到msvcr100.dll的多种解决方法分享,轻松解决dll问题

msvcr100.dll作为系统运行过程中不可或缺的一部分&#xff0c;它的主要功能在于提供必要的运行时支持&#xff0c;确保相关应用程序能够顺利完成编译和执行。因此&#xff0c;当操作系统或应用程序在运行阶段搜索不到该文件时&#xff0c;自然会导致各类依赖于它的代码无法正常…

vue3+acro实现日期组件可以直接展示在界面上,不用非得弹框展示

前言&#xff1a; 在很多时候&#xff0c;我们使用日期组件的时候&#xff0c;不希望每次都是点击弹出日期弹框&#xff0c;而是&#xff0c;点击日期弹框直接能展示在界面上&#xff0c;在这里我们介绍下 使用 acro 来更加轻松的实现他的效果。 实现效果&#xff1a; 实现步骤…

Skywalking UI页面中操作的各种实用功能汇总

刚刚接触skywalking不久&#xff0c;在这里总结一下在UI页面中操作的各种实用功能&#xff0c;随着使用的不断深入&#xff0c;我也会对文章进行持续补充。 本文skywalking 的ui入口是官方demo &#xff0c;版本是10.0.0-SNAPSHOT-593bd05 http://demo.skywalking.apache.org…