redis客户端--jedis

来源:互联网 发布:ai软件工具栏功能 编辑:程序博客网 时间:2024/06/07 04:11

在https://redis.io/clients/#java 中有很多Java的redis客户端工具,最常用的是jedis。
使用jedis需要jedis-2.9.0.jar

Jedis的基本使用

Jedis jedis = new Jedis(host, prot);即可使用

public static Jedis getJedis(){    try {        //生成一个redis对象,这个对象负责和指定的redis实例进行通信        jedis = new Jedis("192.168.220.128", 6380);    } catch (Exception e) {        e.printStackTrace();    } finally {        jedis.close();    }    return jedis;}

初始化jedis需要两个参数:IP和端口号。还有一个包含四个参数的构造方法。

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

host: redis实例所在机器ip
port::redis实例端口号
connectionTimeout:客户端连接超时
soTimeout:客户端写超时

Jedis连接池的使用

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();JedisPool jedisPool = new JedisPool(jedisPoolConfig,"192.168.220.128",6379);try{    jedis = jedisPool.getResource();} catch (Exception e){    e.printStackTrace();} finally {    if (jedis != null){        jedis.close();    }}

其中JedisPoolConfig : 连接池的配置。在此使用默认配置

参数名称 含义 默认值 maxAction 连接池最大连接数 8 maxIdle 连接池中最大空闲连接数 8 minIdle 连接池中最少空闲连接数 0 maxWaitMillis 当连接池资源用尽后,调用者的最大等待时间(一般不建议使用默认值) -1,表示永远不超过一直等

jedis的存取

String

String setResult = jedis.set("String:user:1","jedis");System.out.print(setResult);        String getResult = jedis.get("String:user:1");        System.out.println(getResult);

hash

Map<String, String> map = new HashMap<>();        map.put("name", "sanmao");        map.put("age", "12");        Jedis jedis = JedisConnet.getJedis();        Long start = System.currentTimeMillis();        map.keySet().stream().forEach(s -> {            jedis.hset("hash:user:1", s, map.get(s));        });        System.out.println("执行存操作时间:" + (System.currentTimeMillis() - start));        start = System.currentTimeMillis();        Map<String, String> resultMap = jedis.hgetAll("hash:user:1");        System.out.println("执行取操作时间:" +(System.currentTimeMillis() - start));        resultMap.keySet().forEach(s -> {            System.out.println("Key is: " + s + " value is: " + resultMap.get(s));        });

set

        Long setResult = jedis.sadd("list:user:1", "list1","list2");        System.out.println(setResult);        Set<String> getResults = jedis.smembers("list:user:1");        getResults.forEach(s -> {            System.out.println(s);        });