Skip to content
大纲

redis 使用手册

一、产品概述

1.1)产品简介 云数据库Redis版,是兼容开源Redis协议标准的数据库服务,基于双机热备架构及集群架构,可满足高吞吐、低延迟及弹性变配等业务需求。支持String(字符串)、List(链表)、Set(集合)、Sorted Set(有序集合)、Hash(哈希表)、Stream(流数据)等多种数据结构,同时支持Transaction(事务)、Pub/Sub(消息订阅与发布)等高级功能。

1.2)实例类型

版本类型简介
云数据库Redis社区版兼容开源Redis的高性能内存数据库产品,支持主从双副本、集群、等架构。

1.3)架构类型 云数据库Redis版支持灵活的多种部署架构,能够满足不同的业务场景

cluster

1.4)实例规格 云数据库Redis社区版有多种规格,详细信息请参见: cluster

二、REDIS实例管理

2.1 实例部署

2.1.1)进入redis控制台,点击实例部署,填写相关参数,然后进行提交; 说明: 环境选择:默认-生产代表生产环境,默认-测试代表测试环境;根据租户后续需求提供可用区选项; 架构类型: 集群版:分片集群架构,直连访问,需要redis 集群客户端访问,双机热备架构,提供数据可靠性; 单机版:单副本缓存,只有一个单节点,不承诺数据可靠性保障; redis版本:提供5.0和6.0选择; 实例规格:实例部署的VM的配置信息;

create

2.1.2)部署需求提交后,控制台界面生产一个实例,状态为创建中;

2.1.3)等待2-3分钟后,状态变成运行中,redis实例集群版部署完毕并正常运行;

create

2.2)连接信息 集群版redis实例的连接信息;

conn

2.3)REDIS实例详情 3副本集群的详细分片、状态等信息,可以进行停止和重启操作。

detail

2.4)REDIS实例监控 2.4.1)点击对应redis实例后面的监控按钮,可以查看对应实例的监控信息;

monitor

2.5)REDIS实例回收 2.5.1)点击redis实例后面的实例回收按钮,可以对redis实例进行回收;

revoke

三、REDIS连接示例

3.1) 连接方式 您可以通过程序客户端、redis-cli等多种方式连接Redis实例,以下提供两种方式连接示例,连接方式如下:

3.2) 案例1:开源的格式类型,例如您设置的密码是abcd1234,则连接命令如下: redis-cli -h IP地址 -p 端口 -a abcd1234
或 redis-cli -h IP地址 -p 端口

3.3)案例2:redis cluste客户端程序:

jedis 官方推荐的开源客户端

  • 版本支持
    • Jedis 2.9.x:与Redis 2.8.x兼容。
    • Jedis 3.0.x:与Redis 3.0.x兼容。
    • Jedis 3.1.x:与Redis 3.2.x兼容。
    • Jedis 3.2.x:与Redis 4.0.x兼容。
    • Jedis 3.3.x:与Redis 5.0.x兼容。
    • Jedis 3.9.x:与Redis 5.0.x - 6.2.x兼容。
    • Jedis >= 4.0:与Redis 5.0.x ++ 兼容。 暂时无法在飞书文档外展示此内容
  • 连接不同Redis服务端 连接集群模式和连接单节点模式,需要业务修改代码
  • cluster例子

import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; import redis.clients.jedis.JedisPoolConfig;

import java.util.HashSet; import java.util.Set;

public class JedisClusterExample { public static void main(String[] args) { // 创建JedisPoolConfig实例 JedisPoolConfig poolConfig = new JedisPoolConfig(); // 配置连接池参数(例如最大连接数、最大空闲连接数等)

    // 创建JedisCluster节点集合
    Set<HostAndPort> nodes = new HashSet<>();
    nodes.add(new HostAndPort("localhost", 7000));
    nodes.add(new HostAndPort("localhost", 7001));
    nodes.add(new HostAndPort("localhost", 7002));

    // 创建JedisCluster实例
    JedisCluster jedisCluster = new JedisCluster(nodes, poolConfig);

    // 执行Redis Cluster命令
    jedisCluster.set("key", "value");
    String value = jedisCluster.get("key");
    System.out.println(value);

    // 关闭JedisCluster连接
    jedisCluster.close();
}

}

3.4)单节点例子 import redis.clients.jedis.Jedis;

public class JedisExample { public static void main(String[] args) { // 创建Jedis实例,连接到Redis服务器 Jedis jedis = new Jedis("localhost", 6379);

    // 执行Redis命令
    jedis.set("key", "value");
    String value = jedis.get("key");
    System.out.println(value);

    // 关闭Jedis连接
    jedis.close();
}

}

3.5)其他常用的客户端

  1. Lettuce
  2. Redisson
  3. SpringDataRedis SpringDataRedis 是更高级别的抽象,支持上述几种java客户端,使用SpringDataRedis 连接集群或是单节点Redis只需要修改配置文件即可 使用 客户端 Spring data redis
  4. 连接redis集群
  5. 连接单节点集群
  6. 使用默认的lettuce客户端
  7. 对 redis 进行 set,get操作

注意事项:

客户端配置动态拓扑更新 无论是5.0,还是6.0集群,都需要客户端开启动态拓扑更新 spring.redis.lettuce.cluster.refresh.period=3000ms spring.redis.lettuce.cluster.refresh.adaptive=true 开启动态更新后,客户端不会一直报错,影响的时间段就是动态更新的时间间隔