当前位置:   article > 正文

Redis 7.x 系列【3】多种连接方式_redis连接工具

redis连接工具

有道无术,术尚可求,有术无道,止于术。

本系列Redis 版本 7.2.5

源码地址:https://gitee.com/pearl-organization/study-redis-demo

1. 概述

官方文档

在上篇文档中已经部署好了 Redis ,接下来学习如何连接到 Redis

可以通过以下几种方式进行连接:

  • Redis Cli 命令行界面
  • 可视化管理工具
  • 编程语言客户端库

2. Redis Cli

官方提供了 redis-cli 工具,通过命令行界面Redis 进行交互,在安装目录中可以看到该工具:

在这里插入图片描述
操作示例:

[root@localhost bin]# ./redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set mykey "Hello"
OK
127.0.0.1:6379> get mykey
"Hello"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3. 可视化管理工具

3.1 Redis Insight

Redis Insight 是官方提供的一个可视化管理工具,支持连接 Redis Redis Stack ,支持 WindowsLinuxMacOS 操作系统。

官方地址进行下载,选择系统、填写用户信息:

在这里插入图片描述
下载完成后直接安装即可,在首页选择添加连接:

在这里插入图片描述
填写主机IP、端口、密码后,点击添加:

在这里插入图片描述
自动跳转到连接列表:

在这里插入图片描述
Browser浏览页面可以查看到当前所有 Key 以及对应值的详细信息:

在这里插入图片描述

Workbench 工作台页面可以执行 Redis 命令:

在这里插入图片描述
Analysis Tools 页面可以查看一些监控信息:

在这里插入图片描述
Pub/Sub 页面可以订阅频道,向频道发布消息:

在这里插入图片描述

3.2 RedisDesktopManager

下载地址

RedisDesktopManager 是一个非官方的可视化管理工具,界面十分简洁,用起来很舒服,推荐一下。

在这里插入图片描述

4. 客户端库

Redis 几乎支持所有编程语言进行客户端连接:

在这里插入图片描述

Redis 官方提供了以下语言支持:

  • Python
  • C#/.NET
  • Node.js
  • Java
  • Go

其中 Java 客户端包含以下两种:

  • Jedis
  • Lettuce

4.1 Jedis

官方文档
GitHub地址

Jedis 是一个同步阻塞的 Redis Java 客户端库,其优点是简单易用、成熟稳定。使用同步阻塞的方式与 Redis 进行通信,在高并发场景下,性能不佳。此外Jedis 实例不是线程安全的,需要通过 JedisPool 连接池管理实例。

引入依赖:

        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>5.1.2</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

连接并执行操作示例:

public class JedisTest {
    public static void main(String[] args) {
        // 创建连接池
        JedisPool pool = new JedisPool("localhost", 6379,"default","123456");
        // 获取客户端
        try (Jedis jedis = pool.getResource()) {
            // 存入一个字符串
            jedis.set("foo", "bar");
            System.out.println(jedis.get("foo"));   //Prints: bar

            // 存入一个Hash
            Map<String, String> hash = new HashMap<>();;
            hash.put("name", "John");
            hash.put("surname", "Smith");
            hash.put("company", "Redis");
            hash.put("age", "29");
            jedis.hset("user-session:123", hash);
            System.out.println(jedis.hgetAll("user-session:123"));  // Prints: {name=John, surname=Smith, company=Redis, age=29}
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4.2 Lettuce

官方文档
GitHub地址

Lettuce 是一个可扩展的线程安全的 Redis Java 客户端库,可用于同步、异步和响应式,API 较为复杂抽象,所以学习成本较高。底层使用的是 Netty ,使用异步非阻塞的方式与 Redis 进行通信,在高并发场景下,性能更好。此外Lettuce 实例是线程安全的,无需额外处理线程同步问题。

引入依赖:

        <dependency>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
            <version>6.3.2.RELEASE</version> <!-- Check for the latest version on Maven Central -->
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

连接并执行操作示例:

public class LettceTest {

    public static void main(String[] args) {
        // 创建客户端
        RedisClient redisClient = RedisClient.create("redis://localhost:6379");
        // 获取连接
        try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {
            // 执行异步命令
            RedisAsyncCommands<String, String> asyncCommands = connection.async();

            // 存入一个字符串
            asyncCommands.set("foo", "bar").get();
            System.out.println(asyncCommands.get("foo").get()); // prints bar

            // 存入一个Hash
            Map<String, String> hash = new HashMap<>();
            hash.put("name", "John");
            hash.put("surname", "Smith");
            hash.put("company", "Redis");
            hash.put("age", "29");
            asyncCommands.hset("user-session:123", hash).get();

            System.out.println(asyncCommands.hgetall("user-session:123").get()); // Prints: {name=John, surname=Smith, company=Redis, age=29}
        } catch (ExecutionException | InterruptedException e) {
            throw new RuntimeException(e);
        } finally {
            redisClient.shutdown();
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

4.3 Redission

官方网站
GitHub地址

Redission 是一个高性能、异步无锁的 Redis Java 客户端库,基于 Netty 进行通信。Redission 提供了一些列的分布式服务工具,例如分布式对象、分布式锁、分布式任务调度、分布式数据数据处理、分布式会话集群等。

引入依赖:

        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.31.0</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

连接并执行操作示例:

public class RedissonTest {

    public static void main(String[] args) {
        // 创建客户端对象
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6379");
        RedissonClient redissonClient = Redisson.create(config);

        // 存入一个 Map
        RMap<String, String> rMap = redissonClient.getMap("rMap"); // 创建Map分布式对象
        rMap.put("name", "John"); // 存入数据
        rMap.put("surname", "Smith");
        rMap.put("company", "Redis");

        // 重新获取
        RMap<String, String> getMap = redissonClient.getMap("rMap");
        System.out.println(getMap);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/903111
推荐阅读
相关标签
  

闽ICP备14008679号