Jedis操作Redis数据库

使用jedis链接redis之前,我们先需要修改一下redis的配置文件。注释掉bind:127.0.0.1。修改完成保存退出,启动redis服务。

1.接下来创建一个普通的maven项目,引入jidis的依赖。

<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
   <version>3.2.0</version>
   <type>jar</type>
   <scope>compile</scope>
</dependency> 
然后创建一个测试类进行链接,代码如下:

 

复制代码
public class MyJedisTest {
    public static void main(String[] args) {
         //1.构造一个 Jedis 对象,因为这里使用的默认端口 6379,所以不用配置端口,当然也指定端口号。
        Jedis jedis = new Jedis("192.168.1.11");
        //Jedis jedis1 = new Jedis("192.168.1.5", 6379);
        //2.密码认证
        jedis.auth("123456");
        String ping = jedis.ping();
        System.out.println(ping);
        String isOk = jedis.set("k1", "abc");
    }
}
复制代码

jedis中的方法与客户端的命令基本类似,非常方便记忆。

2.jedis连接池。

在实际应用中,Jedis 实例我们一般都是通过连接池来获取,由于 Jedis 对象不是线城安全的,所以,当
我们使用 Jedis 对象时,从连接池获取 Jedis,使用完成之后,再还给连接池。
复制代码
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisPoolTest {
 public static void main(String[] args) {
    Jedis jedis = null;
    //1. 构造一个 Jedis 连接池
    JedisPool pool = new JedisPool("192.168.1.11", 6379);
    //2. 从连接池中获取一个 Jedis 连接
    jedis = pool.getResource();
    jedis.auth("123456");
    try {
      //3. Jedis 操作
      String ping = jedis.ping();
      System.out.println(ping);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      //4. 归还连接
      if (jedis != null) {
        jedis.close();
      }
    }
  }
}
复制代码

上段代码比较繁琐,我们利用 JDK1.7 中的 try-with-resource 特性,可以对上面的代码进行改造。

复制代码
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisPoolTest {
  public static void main(String[] args) {
    JedisPool pool = new JedisPool("192.168.1.11");
    try(Jedis jedis = pool.getResource()) {
      jedis.auth("123456");
      String ping = jedis.ping();
      System.out.println(ping);
    }
  }
}
复制代码

实际开发过程中,我们还需要根据上述代码来进一步封装。

首先,我们新建一个接口,调用的时候实现这个接口。

public interface CallWithJedis {
    void call(Jedis jedis);
}

 

 然后创建一个Redis类,

复制代码
public class Redis {
    private JedisPool pool;
    public Redis() {
        GenericObjectPoolConfig config = new GenericObjectPoolConfig();
        //连接池最大空闲数
        config.setMaxIdle(300);
        //最大连接数
        config.setMaxTotal(1000);
        //连接最大等待时间,如果是 -1 表示没有限制
        config.setMaxWaitMillis(30000);
        //在空闲时检查有效性
        config.setTestOnBorrow(true);
        /**
         * 1. Redis 地址
         * 2. Redis 端口
         * 3. 连接超时时间
         * 4. 密码
         */
        pool = new JedisPool(config, "192.168.1.11", 6379, 30000, "123456");
   }
    public void execute(CallWithJedis callWithJedis) {
        try (Jedis jedis = pool.getResource()) {
            callWithJedis.call(jedis);
       }
   }
}    
复制代码

当我们需要redis操作时,直接先New一个Redis对象,然后执行execute方法,redis的相关操作直接在方法内部执行即可,执行完毕将连接归还连接池。

Redis redis = new Redis();
redis.execute(jedis -> {
    //进行redis相关操作
    System.out.println(jedis.ping());
});

 关于Jedis的介绍就先到这里,本篇内容的介绍基于公众号江南一点雨的视频课程进行总结的,大家有兴趣的话可以关注一下。

posted @   天有多高我有多骚  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示