3.1java客户端

Java客户端: Jedis

Maven依赖

redis.clients.jedis:2.9.0

Jedis直连

  1. 生成一个Jedis对象,这个对象负责与指定Redis节点进行通信

    Jedis(String host, int port, int connectionTimeout, int soTimeout)

    • host:Redis节点的所在机器的IP

    • port:Redis节点的端口

    • connection Timeout:客户端连接超时

    • soTimeout:客户端读写超时

    Jedis jedis = new Jedis("127.0.0.1",6379);
  2. 执行操作

    String

    jedis.set("hello","world");
    jedis.get("hello");
    jedis.incr("counter");

    hash

    jedis.hset("myhash","f1","v1");
    jedis.hset("myhash","f2","v2");
    jedis.hgetAll("myhash");
    list
    
    ```bash
    jedis.rpush("mylist","1");
    jedis.rpush("mylist","2");
    jedis.rpush("mylist",3);
    jedis.lrange("mylist",0,-1);

    set

    jedis.sadd("myset","a");
    jedis.sadd("myset","b");
    jedis.sadd("myset","a");
    jedis.smember("mylist");

    zset

    jedis.zadd("myzset",99,"tom");
    jedis.zadd("myzset",66,"peter");
    jedis.zadd("myzset",33,"james");
    jedis.zrangeWithScores("myzset",0,-1);
  3. 关闭Jedis连接

Jedis连接池

步骤

  1. 初始化Jedis连接池,通常来讲JedisPool是单例的

    GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
    JedisPool jedisPool = new JedisPool(poolConfig,"127.0.0.1","6379");
  2. 从连接池中获取jedis对象

  3. 执行操作

  4. 归还Jedis对象给连接池

示例

Jedis jedis = null;
try{
    jedis =jedisPool.getResource();
    jedis.set("hello","world");    
}catch(Exception e){
    e.printStackTrace();
}finally{
    if(redis != null){
        // 如果使用JedisPool.close操作不是关闭连接,而是归还redis连接到连接池
        jedis.close();
    }
}

方案对比

方案

优点

缺点

Jedis直连

简单方便 使用于少量长期连接的场景

Jedis连接池

Last updated

Was this helpful?