在 java 8 中与 lettuce 建立 redis 连接的正确方法

correct way to establish a redis connection with lettuce in java 8

我正在尝试构建一个 Denodo java 存储过程,它通过 lettuce 与 redis 通信。

我正在使用 Denodo 推荐的 Denodo 4e eclipse 扩展和氧气。

我显然遗漏了一些东西,因为所有文档都表明

int port = 6379;
String host = "127.0.0.1";
RedisURi uri = RedisURI.Builder.redis(host,port).withDatabase(1).build();
RedisClient client = RedisClient.create(uri);

RedisClient client = RedisClient.create("redis://localhost:6379");

正在抛出被调试方法掩盖的错误,我所知道的是,在第一个实例中构建器失败,在第二个实例中客户端失败。

当我调用 redis-cli 时,我看到 redis 运行 at 127.0.0.1:6379> 并且能够获得我设置的测试密钥。

user@system:~$ redis-cli
127.0.0.1:6379> get datum1
"datum2"

我在同一台机器上使用默认的 redis.conf 和 运行 eclipse、denodo 和 redis。

redis.conf 中的绑定是 127.0.0.1 ::1 超时已禁用 (0)

我通常不在 Java 中开发,所以我希望我显然做错了什么,而不是必须在非 denodo 项目中实际执行此操作并整理出正确的构建和调试。

对于 java 或 Denodo 的新手来说,这里有一些新手错误。

Java 错误是使用了 catch 异常,它显然没有捕获所有内容。转移到 catch throwable 允许我获得一个有用的堆栈跟踪,尽管我知道除了调试之外不推荐这样做,因为 catch throwable 也会捕获底层的 JVMerrors 和你在代码中没有业务处理的东西。

根本问题是 Java.Lang.ClassNotFoundException 依赖项。

Denodo 的错误是 Java Denodo 中的存储过程要么需要导入依赖项 jar,要么应该使用 uber(?)/fat(?) jar。

我使用 maven 程序集插件而不是使用 denodo4e 部署工具来构建 maven,然后将 jar 复制到 denodo home 下的 procs 文件夹,并在 VDP Admin 中创建新的存储过程时浏览到它。