java连接redis常用的方法,测试类

本文详细介绍了使用Jedis客户端库操作Redis数据库的方法,包括连接池的配置与使用、基本键值操作、批量操作及高级字符串操作等。通过具体示例展示了如何设置、获取、删除键值,以及事务特性的讲解。

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

JedisOprTest操作测试

package cn.itsource.redis.client.jedis;

import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.Iterator;

/**
 * jedis操作redis
 *
 *   key:
 *   各种类型value(String):
 */
public class JedisOprTest
{
    //每个参数方法都要获取连接
    Jedis jedis = JedisUtil.INSTANCE.getResource();
    @Test
    public void testKey()throws Exception{

        //清空数据
        jedis.flushAll();

        System.out.println("判断key为name的key是否存在!"+jedis.exists("name"));
        System.out.println("判断key为sex的key是否存在!"+jedis.exists("sex"));
        System.out.println("判断key为age的key是否存在!"+jedis.exists("age"));

        System.out.println("给key为name的key设置值:"+jedis.set("name", "zs"));
        System.out.println("给key为sex的key设置值:"+jedis.set("sex", "nan"));
        System.out.println("给key为age的key设置值:"+jedis.set("age", "18"));

        System.out.println("再次判断key为name的key是否存在!"+jedis.exists("name"));
        System.out.println("再次判断key为sex的key是否存在!"+jedis.exists("sex"));
        System.out.println("再次判断key为age的key是否存在!"+jedis.exists("age"));

        System.out.println("获取key为name的vaue值:"+jedis.get("name"));
        System.out.println("删除前获取key为sex的vaue值:"+jedis.get("sex"));
        System.out.println("上传key为sex的key:"+jedis.del("sex"));
        System.out.println("删除后获取key为sex的vaue值:"+jedis.get("sex"));

        //  获取所有的key
        Iterator<String> iterator = jedis.keys("*").iterator();
        while (iterator.hasNext()){
            String key = iterator.next();
            System.out.println(key+"--->"+jedis.get(key));
        }

        //jedis.expire(key,seconds)
        //释放连接
        jedis.close();
    }

    @Test
    public void testStringBase()throws Exception{

        //jedis.set(key,value) add update
        //jedis.del(key) del
        //jedis.append(key,appStr)追加
        //jedis.get() 获取

    }

    @Test
    public void testStringBatch()throws Exception{

        //jedis.mset(keyvalue,keyvalue) dd update
        //jedis.del(key1,key2...) del
        //jedis.mget(key1,key2,key3....)
    }

    @Test
    public void testStringAdvanceOpr()throws Exception{

        //jedis.incr()
        //jedis.incrBy()
        //jedis.setex(key,time,value) //设置值得时候同时设置过期时间
    }

    //事务四个特性
    // 1 原子性:一个事务中,多个操作是不可分割的,要么都成功,要么都失败.
    // 2 一致性:一个事务中,多个操作如果有一个失败了,其他要进行回滚保持数据一致性.
    // 3 隔离性:事务是隔离的,多个事务不会相互影响
    // 4 连续性(持续性):事务一旦开始,不能中止.
    @Test
    public void test()throws Exception{

        //手动回滚
    }
}

工具类

package cn.itsource.redis.client.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public enum  JedisUtil {
    INSTANCE;
    private static JedisPool pool;
    static {
        //1 创建jedispool配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //2 做配置-四个
        config.setMaxIdle(2);
        config.setMaxTotal(10);
        config.setMaxWaitMillis(1*1000); //创建连接超时
        config.setTestOnBorrow(true);//获取连接是测试连接是否畅通
        //3 创建jedispool
        //1*1000 获取连接超时时间
        pool = new JedisPool(config,
                "127.0.0.1",6379,1*1000,"admin");
    }

    public Jedis  getResource(){
        return pool.getResource();
    }

    public void  closeResource(Jedis jedis){
       jedis.close();
    }
}

连接池 测试

package cn.itsource.redis.client.jedis;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * 通过连接池简单操作redis
 *   设置一个值
 *   获取一个值
 */
public class JedisPoolTest
{

    //思想:如果创建一个对象后需要为他设置很多值,
	//		还不如先创建它配置对象并做完配置,
	//		然后再通过配置对象创建它
    //1 创建jedispool配置对象
    //2 做配置-四个
    //3 创建jedispool
    //4 通过jedispool获取连接
    //5 执行操作
    // 6 释放连接
    // 7 摧毁连接池-如果是真正项目中它应该是一个
	//受spring管理的单例
    @Test
    public void test()throws Exception{
        //1 创建jedispool配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //2 做配置-四个
        config.setMaxIdle(2);
        config.setMaxTotal(10);
        config.setMaxWaitMillis(1*1000); //创建连接超时
        config.setTestOnBorrow(true);//获取连接是测试连接是否畅通
        //3 创建jedispool
        //1*1000 获取连接超时时间
        JedisPool pool = new JedisPool(config,
                "127.0.0.1",6379,1*1000,"admin");
        //4 通过jedispool获取连接
        Jedis jedis = pool.getResource();
        //5 执行操作
        jedis.set("jedispooltest","dbldblddzt.....");
        System.out.println(jedis.get("jedispooltest"));
        // 6 释放连接
        jedis.close(); //底层做了兼容,如果是连接池操作就是释放,如果是连接操作就是关闭
        // 7 摧毁连接池-如果是真正项目中它应该是一个受spring管理的单例
        pool.destroy();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值