使用Jedis操作Redis(笔记)

来源:互联网 发布:李艺彤总选 知乎 编辑:程序博客网 时间:2024/06/10 02:34

Redis部署在Linux下,远程使用Jedis包操作Redis的尝试

Jedis连接测试:

public static void main(String[] args) {        Jedis jedis = new Jedis("192.168.0.3",6379);        System.out.println(jedis);        System.out.println(jedis.ping());    }

console:

redis.clients.jedis.Jedis@3a71f4ddPONG

使用Jedis操作Linux下部署的redis,需要先在Linux下启动redis服务。

Jedis对象中操作redis的方法与Linux下使用redis的命令基本一致。即redis基本命令都有对应的Jedis方法调用。

public static void main(String[] args) {        Jedis jedis = new Jedis("192.168.0.3",6379);        jedis.set("k1", "v1");        String v1 = jedis.get("k1");        System.out.println(v1);        Set<String> set = jedis.keys("*");        System.out.println(set);    }

console:

v1[k1]

Jedis事务:

public static void main(String[] args) {        Jedis jedis = new Jedis("192.168.0.3",6379);        Transaction tran = jedis.multi();        tran.set("k2", "1");        tran.get("k2");        List<Object> list = tran.exec();        System.out.println(list);    }

console:

[OK, 1]

Jedis主从复制:

public static void main(String[] args) {        Jedis master = new Jedis("192.168.0.3",6379);        Jedis slave = new Jedis("192.168.0.2",6379);        slave.slaveof("192.168.0.3", 6379);        master.set("k3", "v3");        String value = slave.get("k3");        System.out.println(value);    }

console:

v3

Jedis连接池
工具类:

public class JedisPoolUtil {    private static volatile JedisPool jedisPool = null;    private JedisPoolUtil(){}    public static JedisPool getJedisPoolInstance() {        if(null == jedisPool) {            synchronized (JedisPoolUtil.class){                if(null == jedisPool) {                    JedisPoolConfig poolConfig = new JedisPoolConfig();                    poolConfig.setMaxIdle(32);//最多有多少个空闲的Jedis实例                    poolConfig.setMaxTotal(1000);//在低版本Jedis中使用 setMaxActive(),可以分配多少个Jedis实例,-1表示无限制                    poolConfig.setMaxWaitMillis(100*1000);//等待100秒,在低版本是setMaxWait(),连接一个Jedis实例的最大等待时间                    poolConfig.setTestOnBorrow(true);//获得一个Jedis实例时检测连接可用性,true表示连接均可用                    jedisPool = new JedisPool(poolConfig,"192.168.0.3",6379);                }            }        }         return jedisPool;    }    public static void release(JedisPool jedisPool,Jedis jedis) {        if(null != jedis) {            jedis.close();        }    }}

JedisPool测试:

public static void main(String[] args) {        JedisPool jedisPool = JedisPoolUtil.getJedisPoolInstance();        Jedis jedis = null;        try {            jedis = jedisPool.getResource();            jedis.set("k11","v11");            System.out.println(jedis.get("k11"));        }catch(Exception e) {            e.printStackTrace();        }finally {            JedisPoolUtil.release(jedisPool, jedis);        }    }

console:

v11
原创粉丝点击