使用Jedis操作Redis(笔记)

本文介绍如何使用Jedis客户端库连接并操作部署在Linux下的Redis服务。内容涵盖基础的键值对读写、事务处理、主从复制配置及连接池应用等。通过具体示例展示了Jedis提供的多种功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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@3a71f4dd
PONG

使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值