Java jedis操作Redis

版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/85645461

 原来mysql需要使用jdbc,现在需要redis的一个java客户端jedis。

 jedis是客户端,而redis是服务器。使用jedis这个java客户端操作redis数据库。

Jedis简单操作

1.简单配置-连接操作

jedis java客户端连接方式操作redis步骤

1.创建项目
2.导入jar并添加依赖   
3.写代码测试-简单操作(设置一个值并且获取一个值)
   ①创建连接
   ②使用连接进行操作
   ③关闭连接

@Test
public void test() throws Exception {
     //1)创建连接
     Jedis connection = new Jedis("127.0.0.1", 6379);
     connection.auth("root");
     //2)使用连接进行操作
     connection.set("name", "郑清");
     System.out.println(connection.get("name"));
     //3)关闭连接
     connection.close();
}

运行结果: 

2.连接池配置-连接池操作

通过jedis连接池,简单操作redis数据库

    @Test  
    public void testPool() throws Exception {
        //1 创建连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //2 进行配置-四个配置
        config.setMaxIdle(2);//最小连接(空闲最大连接)
        config.setMaxTotal(10);//最大连接数
        config.setMaxWaitMillis(2 * 1000);//最大等待时间
        config.setTestOnBorrow(true);//获取连接时测试连接是否畅通
        //3 通过配置对象创建连接池对象
        JedisPool pool = new JedisPool(config, "127.0.0.1", 6379, 2 * 1000, "root");
        //4 通过连接池获取连接
        Jedis connection = pool.getResource();
        // connection.auth()
        //5 执行操作-设置值和获取值
        connection.set("age", "25");
        System.out.println(connection.get("age"));
        //6 释放连接
        connection.close();//释放和关闭公用一个方法,底层自动判断,如果是连接池环境则释放,否则关闭.
        //7 摧毁连接(测试环境)-真实环境应该是在spring中配置的一个单例
        pool.destroy();
    }

Jedis数据结构操作

工具抽取

public enum JedisUtil {
    INSTANCE;
    //连接池是单例....
    private static JedisPool pool = null;

    static {
        //1 创建连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //2 进行配置-四个配置
        config.setMaxIdle(2);//最小连接(空闲最大连接)
        config.setMaxTotal(10);//最大连接数
        config.setMaxWaitMillis(2 * 1000);//最大等待时间
        config.setTestOnBorrow(true);//获取连接时测试连接是否畅通
        //3 通过配置对象创建连接池对象
        pool = new JedisPool(config, "127.0.0.1", 6379, 2 * 1000, "root");
    }

    //获取连接
    public Jedis getResource() {
        return pool.getResource();
    }

    //释放连接
    public void closeResource(Jedis jedis) {
        if (jedis != null) { jedis.close(); }
    }
}

这里以 jedis操作redis的 key和value为String的值 为例

    @Test
    public void testkey() throws Exception {
        //获取连接
        //清空所有数据-flushall
        Jedis jedis = JedisUtil.INSTANCE.getResource();
        System.out.println("清空数据:" + jedis.flushAll());
        //执行的操作
        System.out.println("判断key为name的值是否存在!" + jedis.exists("name"));//false
        System.out.println("判断key为age的值是否存在!" + jedis.exists("age"));//false
        System.out.println("判断key为sex的值是否存在!" + jedis.exists("sex"));//false

        System.out.println("设置key为name值!" + jedis.set("name", "郑清"));
        System.out.println("设置key为age值!" + jedis.set("age", "18"));
        System.out.println("设置key为sex值!" + jedis.set("sex", "男"));

        System.out.println("设置后再次判断key为name的值是否存在!" + jedis.exists("name"));//true
        System.out.println("设置后获取key为name的值:" + jedis.get("name"));//郑清

        System.out.println("删除前判断key为sex的值是否存在!" + jedis.exists("sex")); //true
        System.out.println("删除key为sex的值" + jedis.del("sex"));
        System.out.println("删除后判断key为sex的值是否存在!" + jedis.exists("sex"));//false

        System.out.println("获取所有的key:"); //name age
        Set<String> keys = jedis.keys("*");
        for (String key : keys) {
            System.out.println(key + "--->" + jedis.get(key));
        }

        jedis.expire("name", 10);//设置过期时间
        Thread.sleep(5000);
        System.out.println(jedis.ttl("name"));//获取剩余过期时间

        //释放连接
        JedisUtil.INSTANCE.closeResource(jedis);
        System.out.println("释放连接:");
    }

运行:  

和命令一样,jedis操作redis也可以操作key和各种类型value

Key操作 

 String基本操作

 List操作

 Set操作

Hash操作

Jedis排序

Jedis事务

最后附上源码:https://pan.baidu.com/s/1obLJMP9nYrKu1P3UPTeFxQ

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/85645461
今日推荐