Redis系列-JAVA与redis整合-jdbc-redis的使用(存在BUG)
来源:互联网 发布:php调用api接口实例 编辑:程序博客网 时间:2024/05/19 06:18
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.csdn.net/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.csdn.net/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开发也不活跃,基本没更新了
- Redis系列-JAVA与redis整合-jdbc-redis的使用(存在BUG)
- Redis系列-JAVA与redis整合-JedisPool的使用
- Redie系列-JAVA与redis整合- redisclient的使用
- Redis系列-JAVA与redis整合-spring-redis
- redis与java spring的整合使用
- java与redis的整合
- Redis系列-JAVA与redis整合-Spring Data Redis实现一个订阅/发布系统
- Spring整合redis使用Java操作redis
- spring与redis整合,redisTemplate的使用
- java springboot与redis整合
- redis系列-redis的使用场景
- Spring与Redis的整合
- Java:Redis安装(Windows),以及Spring MVC与Redis整合
- Redis的集群搭建与Redis与spring整合
- redis系列-redis的连接
- redis系列-redis的连接
- 【Redis系列】Redis的事务处理
- Redis与Spring整合
- Flash的一些基本概念以及MTD操作注意点
- 基于LVS的互联网应用
- hdu-2639 01背包 第K优决策
- 最短路
- Oracle-sga → large_pool , jave_pool , streams_buffer , redo_log_buffer
- Redis系列-JAVA与redis整合-jdbc-redis的使用(存在BUG)
- java 封装特性
- 程序员编程艺术:第六章、求解500万以内的亲和数
- Nginx 0.5.33 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器(第2版)
- [翻译Joel On Software]Joel测试:12步写出更高质量代码/The Joel Test: 12 Steps to Better Code
- 数据库范式
- hdu-2151 二维背包
- java中的io流
- Android 中使用Camera照相