欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中对Redis的缓存进行操作的示例代码

程序员文章站 2024-02-22 17:11:16
redis 是一个nosql数据库,也是一个高性能的key-value数据库。一般我们在做java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中...

redis 是一个nosql数据库,也是一个高性能的key-value数据库。一般我们在做java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中加入缓存功能。redis的高效缓存功能给我们解决了难题。下面我主要讲讲在java项目中怎么去连接redis服务器以及需要注意的事项。

1.导入必须的jar包

使用java操作redis需要两个必须的jar包:jedis-2.5.1.jar 和  commons-pool2-2.0.jar 。每个版本可以不一样,根据你自己下载的为准。

2.实现redisutils工具类

把连接redis服务器的代码封装到一个工具类里面,这样就可以直接调用攻击类来获取redis的服务。

 redisutils工具类代码如下:  以下代码和网上其他的实现类大同小异,其实这个没什么创新的东西。

下面代码需要注意的地方:config.setmaxtotal(max_total); 由于我的jedis版本是2.5的,所有没有setmaxactive这个方法。 

public class redisutils {

  //redis服务器ip
  private static string addr = "192.168.125.130";
  
  //redis的端口号
  private static int port = 6379;
  
  //访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
  private static string auth = "123456";
  
  //可用连接实例的最大数目,默认值为8;
  private static int max_total = 512;
  
  //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
  private static int max_idle = 50;
  
  //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。
  private static int max_wait = 10000;
  
  private static int timeout = 10000;
  
  //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
  private static boolean test_on_borrow = true;
  
  private static jedispool jedispool = null;
  
  /**
   * 初始化redis连接池
   */
  static {
    try {
      jedispoolconfig config = new jedispoolconfig();
      config.setmaxtotal(max_total);
      config.setmaxidle(max_idle);
      config.setmaxwaitmillis(max_wait);
      config.settestonborrow(test_on_borrow);
      jedispool = new jedispool(config, addr, port, timeout, auth);
    } catch (exception e) {
      e.printstacktrace();
    }
  }
  
  /**
   * 获取jedis实例
   * @return
   */
  public synchronized static jedis getjedis() {
    try {
      if (jedispool != null) {
        jedis jedis = jedispool.getresource();
        return jedis;
      } else {
        return null;
      }
    } catch (exception e) {
      e.printstacktrace();
      return null;
    }
  }
  
  /**
   * 释放jedis资源
   * @param jedis
   */
  public static void returnresource(final jedis jedis) {
    if (jedis != null) {
      jedispool.returnresource(jedis);
    }
  }
  
}

3.进行redis测试

接下来就可以进行测试了。一般我们都是用junit测试工具来测试:测试部分代码如下 

    @test
    public void testredispool() {
       redisutils.getjedis().set("xiaomin", ”12122“);
      system.out.println(redisutils2.getjedis().get("xiaomin"));
    }

当然了redis 还能操作list, set,sortseted,hash等数据类型的数据,这些就留给你自己慢慢去学习了。今天就话说到了这。希望对大家的学习有所帮助,也希望大家多多支持。