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

 更新时间:2017年08月26日 16:35:17   作者:白皓颉  
本篇文章主要介绍了java中对Redis的缓存进行操作的示例代码,具有一定的参考价值,有兴趣的可以了解一下

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等数据类型的数据,这些就留给你自己慢慢去学习了。今天就话说到了这。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 图文详解mybatis+postgresql平台搭建步骤

    图文详解mybatis+postgresql平台搭建步骤

    从头开始搭建一个mybatis+postgresql平台,这篇文章主要介绍了图文详解mybatis+postgresql平台搭建步骤,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Java中HashMap 中的一个坑

    Java中HashMap 中的一个坑

    这篇文章主要介绍了Java中HashMap 中的一个坑,文章围绕主题展开详细的内容介绍,具有一定的参考价价值,需要的小伙伴可以参考一下
    2022-05-05
  • 如何通过RabbitMq实现动态定时任务详解

    如何通过RabbitMq实现动态定时任务详解

    工作中经常会有定时任务的需求,常见的做法可以使用Timer、Quartz、Hangfire等组件,这次想尝试下新的思路,使用RabbitMQ死信队列的机制来实现定时任务,下面这篇文章主要给大家介绍了关于如何通过RabbitMq实现动态定时任务的相关资料,需要的朋友可以参考下
    2022-01-01
  • 解决IDEA鼠标点击光标变大问题

    解决IDEA鼠标点击光标变大问题

    这篇文章主要介绍了解决IDEA鼠标点击光标变大问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 数据定位在java购物车系统中的应用

    数据定位在java购物车系统中的应用

    实现"加入购物车"功能,数据定位至关重要,它通过用户ID和商品ID等标识符实现快速查询和数据一致性,主键、外键和联合索引等数据库技术,以及Redis缓存和并发控制策略如乐观锁或分布式锁,共同保障了购物车系统的查询效率和数据安全,这些机制对高并发和大数据量的场景尤为重要
    2024-10-10
  • java String校招面试题过程详解

    java String校招面试题过程详解

    这篇文章主要介绍了java String校招面试题过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java使用HttpClient实现文件下载

    Java使用HttpClient实现文件下载

    这篇文章主要为大家详细介绍了Java使用HttpClient实现文件下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Java设计模式之观察者模式详解

    Java设计模式之观察者模式详解

    这篇文章主要介绍了Java设计模式之观察者模式详解,对象之间的多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化,需要的朋友可以参考下
    2023-12-12
  • 深入了解Spring的事务传播机制

    深入了解Spring的事务传播机制

    Spring事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。本文通过示例详细介绍了Spring的事务传播机制,需要的可以参考一下
    2022-09-09
  • mybatis框架xml下trim中的prefix与suffix等标签的用法

    mybatis框架xml下trim中的prefix与suffix等标签的用法

    这篇文章主要介绍了mybatis框架xml下trim中的prefix与suffix等标签的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论