java 操作redis

来源:互联网 发布:jquery 数组转json 编辑:程序博客网 时间:2024/04/29 18:50

     java 有多个redis 驱动, 以jedis 为例。

1.首先获取链接池:

private static JedisPool pool = null;static {JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(total); // 最大链接config.setMaxWaitMillis(waitMillis); //等待时间config.setMaxIdle(maxIdle); // 最大空闲时间config.setTimeBetweenEvictionRunsMillis(runMillis); //回收链接的间隔/** * used at  Server without auth  */pool = new JedisPool(config, host, port);/** * used at Server with auth *///pool = new JedisPool(config, host, port, Protocol.DEFAULT_TIMEOUT, auth);}

更多配置可以在 JedisPoolConfig类里面找到具体内容。 

2. 开发获取回收接口

/** * 获取jedis 实例 * @return */public static Jedis getRedis() {return pool.getResource();}/** * 返回jedis 实例 */public static void returnRedis(Jedis jed){pool.returnResource(jed);}public static void returnBrokenRedis(Jedis jed){pool.returnBrokenResource(jed);}
如果在操作redis 的时候发生了异常,一定要调用returnBrokenRedis.  否则下次获取的instance 可能含有上次操作的脏数据, 报一些 莫名其妙的类型转化错误


3. 操作redis 的api, 参看:http://redis.readthedocs.org/en/latest/ 。 基本上所有redis 的操作,都有对应的java方法

比如: hlen(key)  对应的方法是: instance.hlen(String)

多个操作,可以用pipe

<span style="white-space:pre"></span>Pipeline pipelined = redis.pipelined();pipelined.set("key1", "val1");pipelined.set("key2", "val2");pipelined.set("key3", "val3");pipelined.sync();



0 0
原创粉丝点击