关于官方文档中OBKV-redis的使用流程

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.2.5
【问题描述】按照官方的文档无法有效的安装和使用OBKV-redis,目前已安装OceanBase4.2.5,使用obd demo命令启动。后续操作按照官方文档里无法有效连接OBKV-redis
我安装完OceanBase 了。我用的默认的sys租户,这两步我都走完了,
,到最后一步应该连接OBKV-Redis了,我连接不上。

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您提供的信息,您已经成功安装了 OceanBase 4.2.5 并使用 obd demo 命令启动了单节点的 OceanBase 数据库。接下来,您希望使用 OBKV-Redis 功能,但遇到了连接问题。以下是基于现有文档信息的指导步骤:

1. 确认 OBKV-Redis 支持情况

首先,需要确认您使用的 OceanBase 4.2.5 版本是否支持 OBKV-Redis 功能。虽然文档中没有明确提到 4.2.5 版本的具体支持情况,但通常新版本会增加更多的功能。您可以查阅 OceanBase 官方文档 或联系 OceanBase 技术支持确认这一点。

2. 配置 OBKV-Redis

假设您的版本支持 OBKV-Redis,您需要进行以下配置:

2.1 创建 OBKV-Redis 表

在 OceanBase 数据库中创建一个兼容 Redis 的表。假设您已经使用 obclient 连接到 OceanBase 数据库,可以执行以下 SQL 语句:

CREATE TABLE redis_table (
    key VARCHAR(255) NOT NULL,
    value VARCHAR(255),
    PRIMARY KEY (key)
) TABLE_TYPE=KV;

2.2 配置 OBKV-Redis 客户端

OBKV-Redis 客户端需要配置连接到 OceanBase 数据库的参数。通常,这些参数包括数据库的 IP 地址、端口号、用户名和密码。您可以参考以下示例配置:

[obkv-redis]
host = 127.0.0.1
port = 2881
user = root@sys
password = your_password

3. 连接 OBKV-Redis

使用 OBKV-Redis 客户端连接到 OceanBase 数据库。假设您使用的是 Python 客户端,可以参考以下代码示例:

import redis

# 配置连接参数
r = redis.Redis(
    host='127.0.0.1',
    port=2881,
    username='root@sys',
    password='your_password'
)

# 测试连接
r.set('test_key', 'test_value')
print(r.get('test_key'))

4. 检查连接问题

如果连接仍然失败,您可以检查以下几点:

  • 防火墙和网络配置:确保防火墙没有阻止连接,网络配置正确。
  • 端口占用:确保 2881 端口没有被其他服务占用。
  • 日志信息:使用 obdiag 工具收集诊断信息,查看日志文件中的错误信息。

5. 联系技术支持

如果以上步骤仍然无法解决问题,建议您联系 OceanBase 技术支持,提供详细的日志信息和配置文件,以便他们能够更好地帮助您解决问题。

总结

  1. 确认 OceanBase 4.2.5 版本是否支持 OBKV-Redis。
  2. 创建兼容 Redis 的表。
  3. 配置 OBKV-Redis 客户端。
  4. 使用客户端连接到 OceanBase 数据库。
  5. 检查连接问题并联系技术支持。

希望这些步骤能帮助您解决问题。如果有任何进一步的问题,请随时联系 OceanBase 技术支持。

更多信息请查看:

  1. 通过图形化界面变更组件
  2. 安装并配置 obd
  3. 集群诊断
  4. 单机部署 OceanBase 数据库
  5. 升级 OceanBase 数据库
  6. 快速启动 OceanBase 数据库
  7. 常见问题汇总
  8. 在 Kubernetes 环境中部署 OceanBase 集群
  9. 使用 obd 升级 OceanBase 数据库
  10. 部署简介
  11. ob_error
  12. OceanBase 术语
  13. 通过 ODC 连接 OceanBase 数据库
  14. SYS 租户/RS 服务问题

你把demo集群铲掉这是127.0.0.1的ip外部无法访问的。使用obd web搭建一个试试

OcenBase我是跑在虚拟机里的,demo集群,我在我本地用虚拟机IP,用Navicat是能连通的。要重新配置吗?

根据您的描述,您已经成功使用 Navicat 连接到运行在虚拟机中的 OceanBase 集群。现在您希望连接到 OBKV-Redis,但遇到了问题。以下是一些可能的解决方案和检查步骤:

1. 确认 OBKV-Redis 服务是否启动

首先,确保 OBKV-Redis 服务已经启动。您可以使用 obd cluster status 命令检查集群状态,确认 OBKV-Redis 服务是否正常运行。

obd cluster status <cluster_name>

2. 检查 OBKV-Redis 端口

确保 OBKV-Redis 服务监听的端口(通常是 2881)没有被防火墙阻止,并且可以从您的本地机器访问。您可以使用 telnetnc 命令测试端口连接:

telnet <virtual_machine_ip> 2881

或者

nc -zv <virtual_machine_ip> 2881

3. 配置 OBKV-Redis 客户端

确保您的 OBKV-Redis 客户端配置正确。以下是一个示例配置:

[obkv-redis]
host = <virtual_machine_ip>
port = 2881
user = root@sys
password = your_password

4. 使用客户端连接

使用 OBKV-Redis 客户端连接到 OceanBase 数据库。假设您使用的是 Python 客户端,可以参考以下代码示例:

import redis

# 配置连接参数
r = redis.Redis(
    host='<virtual_machine_ip>',
    port=2881,
    username='root@sys',
    password='your_password'
)

# 测试连接
r.set('test_key', 'test_value')
print(r.get('test_key'))

5. 检查日志信息

如果连接仍然失败,您可以使用 obdiag 工具收集诊断信息,查看日志文件中的错误信息。这将帮助您确定问题的具体原因。

obdiag collect log --cluster <cluster_name> --output /path/to/output

6. 确认 OBKV-Redis 表

确保您已经在 OceanBase 数据库中创建了兼容 Redis 的表。例如:

CREATE TABLE redis_table (
    key VARCHAR(255) NOT NULL,
    value VARCHAR(255),
    PRIMARY KEY (key)
) TABLE_TYPE=KV;

7. 联系技术支持

如果以上步骤仍然无法解决问题,建议您联系 OceanBase 技术支持,提供详细的日志信息和配置文件,以便他们能够更好地帮助您解决问题。

总结

  1. 确认 OBKV-Redis 服务是否启动。
  2. 检查 OBKV-Redis 端口是否开放。
  3. 配置 OBKV-Redis 客户端。
  4. 使用客户端连接到 OceanBase 数据库。
  5. 检查日志信息。
  6. 确认 OBKV-Redis 表。
  7. 联系技术支持。

希望这些步骤能帮助您解决问题。如果有任何进一步的问题,请随时联系 OceanBase 技术支持。

更多信息请查看:

  1. 通过 Navicat 连接数据库
  2. 通过 Navicat 连接 OceanBase 数据库
  3. 通过 OCP 部署 OceanBase 集群
  4. 部署简介
  5. 在 Kubernetes 环境中部署 OceanBase 集群
  6. 使用 OBKV-HBase 客户端连接集群

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

OBKV-Redis的proxy目前还没发出,预计本周发出来。可以等发出来试试

意思是目前不支持redis协议连接obkv-redis,只能通过 Modis Proxy代理连接是吗?

是的需要代理连接服务通过obproxy,目前适配obkv-redis的obproxy将在本周发出

新版obproxy432bp1已发出可以使用了