Redis系列-JAVA与redis整合-jdbc-redis的使用(存在BUG)

本文提供了一个关于如何使用jdbc-redis进行Redis操作的示例,包括连接配置、基本命令执行等,并指出了在使用过程中遇到的问题及解决方案。

jdbc-redis  主页  https://code.google.com/p/jdbc-redis/

jdbc-redis 源码   https://code.google.com/p/jdbc-redis/source/browse

jdbc-redis jar 下载  http://download.youkuaiyun.com/detail/sdn_superuser/6493779


点开源码页的samples  里面有相关的列子



package jackson;



import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import java.sql.SQLException;

public class RedisDemo {

    private static Connection conn = null;
    private static Statement stm = null;
    private static ResultSet rs = null;

    /**
     * @param args
     * @throws SQLException
     */
    public static void main(String[] args) throws SQLException {
        init();
        oneKey();
     //   manyKey();
    }

    /*
     * 初始化
     */
    private static void init() {
        
        try {
            // 加载redis jdbc驱动
            Class.forName("br.com.svvs.jdbc.redis.RedisDriver");
            // 连接
            conn = DriverManager.getConnection("jdbc:redis://192.168.1.234");
            stm = conn.createStatement();

        } catch (ClassNotFoundException e) {

            System.out.println(e.toString());
        } catch (SQLException e) {
            System.out.println(e.toString());
        }
    }

    /*
     * 关闭stm,conn
     */
    private static void close() {
        try {
             rs.close();
            stm.close();
            conn.close();
        } catch (SQLException e) {

            System.out.println(e.toString());
        }
    }

    /*
     * 一个键值的操作
     * 
     */
    private static void oneKey() throws SQLException {
    	String value = "myfirstvalue1";
        String sql = "set my_first_key "+value;
        stm.execute(sql);
        stm.execute("get my_first_key");

        rs = stm.getResultSet();
        System.out.println("onekey:");
        while (rs.next()) {
            System.out.println(rs.getString(0));
           // System.out.println(rs.getString("my_first_key"));
        }
        close();
    }

    /*
     * 一个key对多个value操作
     */
    private static void manyKey() throws SQLException {
        stm.execute("lpush mylist value1");
        stm.execute("lpush mylist value2");
        stm.execute("lpush mylist value3");
        
        stm.execute("lrange mylist 0 -1");  
        
        rs=stm.getResultSet();
        
        while(rs.next()){
            System.out.println(rs.getString("mylist"));
        }
    }

}

这里代码有问题, 就是说 rs.getString的时候返回的是 key的长度而不是key,网上找了很久没有答案,项目放到linux上跑也是同样的问题

http://bbs.youkuaiyun.com/topics/370083835

http://www.oschina.net/question/118696_24434


目前找到的唯一的合理解释

这个主要是redis版本问题,redis-jdbc发送redis命令采用了Bulk commands方式,

这是redis-1.2之前的协议,你可以改用redis-1.2的版本,这样操作是成功的。结果和预期一样。 
对于新版本的redis,官方上推荐的是jredis,你可以使用这个,而且redis-jdbc开发也不活跃,基本没更新了

<think>好的,我现在需要帮助用户解决在DataGrip中连接Redis1.5版本所需的离线驱动下载问题。首先,用户提到的是DataGrip连接Redis的1.5版本驱动,但需要确认这个版本具体指的是Redis的版本还是驱动的版本。通常来说,连接Redis的驱动可能有不同的版本,比如Jedis、Lettuce等,但DataGrip作为JetBrains的数据库管理工具,可能使用特定的驱动。 接下来,我需要回忆一下DataGrip连接Redis的常规方法。通常,DataGrip通过数据库插件支持非SQL数据库,比如Redis。用户可能需要安装对应的数据库插件,并且可能需要配置驱动。不过用户特别提到了1.5版本驱动,这可能是指某个特定的驱动版本。首先,我需要确认用户的需求:下载适用于DataGrip连接Redis的1.5版本驱动,以便离线使用。可能的场景是用户无法在线下载,需要手动安装驱动。这时候,用户需要找到该驱动的jar文件,然后手动添加到DataGrip的驱动配置中。 接下来,我需要考虑如何获取这个驱动。JetBrains的官方资源库可能提供相关驱动,或者可能需要从Maven仓库下载。例如,RedisJDBC驱动可能有不同的项目,比如https://github.com/jredis/jredis,或者可能使用Jedis客户端。不过,DataGrip可能使用特定的驱动,需要进一步确认。用户提到的引用内容中提到了在IDEA中配置数据库连接,添加jar包的步骤。这提示用户可能需要类似的步骤在DataGrip中添加驱动。因此,正确的步骤可能是:下载对应版本的驱动jar包,然后在DataGrip的数据库配置中添加该驱动,并指定jar文件的位置。 现在需要确定Redis1.5驱动是否存在。可能用户指的是某个特定的JDBC驱动版本,比如Redisson或Jedis的某个版本。例如,Jedis的版本历史中是否有1.5版本?根据记忆,Jedis的版本可能较高,比如3.x或4.x,所以1.5可能比较旧。或者,可能用户指的是Redis服务器的1.5版本,但Redis服务器版本通常更高,比如5.x、6.x等,1.5可能非常古老,可能驱动兼容性有问题。 这时候可能需要进一步询问用户,但用户已经明确需要1.5版本的驱动。因此,假设用户确实需要这个版本,可能是由于遗留系统需要。这时候需要找到该驱动的下载方式。 可能的解决方案包括: 1.检查JetBrains的官方插件仓库,看是否有Redis驱动插件的旧版本。2.在Maven中央仓库中搜索相关的驱动,如redis-jdbc-driver,查找1.5版本的jar文件。 3.检查GitHub上的开源项目,是否有提供历史版本的下载。 例如,访问Maven仓库(https://mvnrepository.com),搜索关键词如“redis jdbc driver”,然后筛选版本。假设找到某个驱动有1.5版本,用户即可下载对应的jar文件。 另外,需要注意驱动DataGrip的兼容性。旧版本的驱动可能不支持新版的DataGrip,需要用户确认DataGrip的版本是否兼容。 如果找不到官方渠道的下载链接,可能需要建议用户联系JetBrains支持,或者查找第三方资源,但需提醒用户注意安全风险。 总结步骤:1.确认驱动版本的存在性。2.找到可靠的下载源。 3.指导用户如何手动添加驱动到DataGrip。 现在,根据这些思考,整理回答,确保符合用户的要求,包括使用正确的中文,引用格式,以及生成相关问题。</think>### DataGrip连接Redis 1.5版本离线驱动下载方法 1. **确认驱动来源** Redis官方未提供JDBC驱动,但第三方项目如`redisson`或`Jedis`可能提供相关功能。若需特定1.5版本驱动,需通过以下途径获取: - **Maven中央仓库**:访问[Maven仓库](https://mvnrepository.com),搜索关键词`redis jdbc driver`,筛选版本号为`1.5`的依赖项(如存在),下载对应的`.jar`文件[^1]。 - **GitHub历史版本**:在开源项目仓库(如`Jedis`或`Lettuce`)的Release页面中查找旧版本。 2. **手动添加驱动到DataGrip** 若已下载驱动文件(如`redis-driver-1.5.jar`),按以下步骤操作: ```plaintext 1. 打开DataGrip → 右侧Database面板 → 点击"+" → 选择"Data Source" → 搜索"Redis"。 2. 在驱动配置界面,点击"Drivers"选项卡 → 点击"+"新建驱动。 3. 命名驱动(如"Redis 1.5 Driver"),添加.jar文件 → 点击"Apply"保存。 ``` 3. **兼容性注意事项** - Redis 1.5版本较旧(发布于2009年),建议确认服务器版本是否匹配。 - 若驱动DataGrip存在兼容性问题,可尝试降级DataGrip版本或使用通用客户端(如`Jedis 2.x`)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值