基于各种整合案例详解Java如何操作Redis?

IT 文章6天前更新 小编
0 0 0

Redis的应用非常广泛,用法也是多种多样,对于Java开发者而言,经常会使用到redis到项目中,可能是普通的java项目、Maven项目或者pring整合redis,SpringBoot整合redis等,下面潘老师带大家一起来看一下各种整合使用场景!

1、我这里使用的Redis是安装在Windows系统中的5.0.9版本,和Linux版本操作起来方法一样(Linux系统注意要关闭防火墙)。如果你还没有安装,可以参考:Redis单机版安装步骤图文教程(Linux和Windows)
2、非Maven项目请先准备jar包(自行网上下载,建议去阿里云Maven仓库mvnrepository仓库查找下载:
1)jedis-2.9.0.jar,类似于mysql驱动包
2)commons-pool2-2.8.1.jar,类似于数据库连接池包

1)不整合连接池
新建普通Java项目,将jedis-2.9.0.jar导入到buildpath中,然后操作代码如下:

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

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

public class TestRedis {
    @Test
    public void test1() {
        // 1. 创建Jedis 对象-设置IP地址和端口
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        // 2. 保存数据
        jedis.set("myblog", "panziye.com");
        // 3. 根据key获取数据
        String value = jedis.get("myblog");
        System.out.println(value);
        // 4.释放资源
        jedis.close();
    }
}

运行结果:
基于各种整合案例详解Java如何操作Redis?
2)整合连接池
数据库连接池整合很类似,再将commons-pool2-2.8.1.jar添加至buildpath中,使用代码如下:

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

public class TestRedis {
    @Test
    public void test2() {
        // 获取连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        // 设置最大连接数
        config.setMaxTotal(30);
        // 设置最大的空闲连接数
        config.setMaxIdle(10);

        // 获得连接池: JedisPool jedisPool = new JedisPool(poolConfig,host,port);
        JedisPool jedisPool = new JedisPool(config,"127.0.0.1",6379);

        // 获得核心对象:jedis
        Jedis jedis = null;
        try{
            // 通过连接池来获得连接
            jedis = jedisPool.getResource();
            // 设置数据
            jedis.set("myname","panziye");
            // 获取数据
            String myname = jedis.get("myname");
            System.out.println(myname);
        } catch (Exception e){
            e.printStackTrace();
        } finally {
            // 释放资源
            if(jedis != null){
                jedis.close();
            }
            // 释放连接池
            if(jedisPool != null){
                jedisPool.close();
            }
        }

    }
}

运行结果:
基于各种整合案例详解Java如何操作Redis?

普通的Maven项目使用代码案例和上面一样,不过就是jar包可以通过在pom.xml中引入坐标即可,以下是这两个包的中央仓库坐标:
jedis-2.9.0.jar的坐标:


    redis.clients
    jedis
    2.9.0

commons-pool2-2.8.1.jar的坐标:

ad

AI 工具导航

优网导航旗下AI工具导航,精选全球千款优质 AI 工具集


    org.apache.commons
    commons-pool2
    2.8.1

在这里我们基于之前的搭建好的SSM项目进行整合,之前的SSM项目参考:Eclipse搭建SSM框架开发环境的流程(Spring+SpringMVC+Mybatis)
1、下载相关jar包,并导入到lib目录
jedis-2.9.0.jarcommons-pool2-2.8.1.jarspring-data-redis-1.7.2.RELEASE.jar
如果用Maven,则spring-data-redis-1.7.2.RELEASE.jar的中央仓库坐标为:


    org.springframework.data
    spring-data-redis
    1.7.2.RELEASE

[v_error]注意:jar包版本要匹配,如果spring-data-redis 版本过高,可能会出现jedis : NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier异常,因为spring-data-redis 2.0以上需要jdk8和spring5以上才能支持。[/v_error]
2、在src目录下新建redis.properties配置文件,具体配置如下:

redis.host=127.0.0.1
redis.port=6379
redis.maxIdle=300
redis.maxWaitMillis=1000
redis.timeout=100000
redis.maxTotal=600
redis.testOnBorrow=true
redis.testOnReturn=true

3、在spring核心配置文件spring.xml中新增如下配置:
1)引入redis.properties文件,由于我之前引入过jdbc.properties,只需在后面加一下即可。


2)整合redis配置:


    
        
        
        
        
        
    
    
    
    	
        
        
         
        
        
    
    
    
    
        
    

4、新建RedisController.java测试代码如下:

@Controller
public class RedisController {
	@Autowired
	private RedisTemplate redisTemplate;
	
	@RequestMapping("set")
        public String setTest(){
    	//设置
        redisTemplate.opsForValue().set("username", "潘子夜");
        //获取
        System.out.println(redisTemplate.opsForValue().get("username"));
        return "success";
    }
}

5、运行浏览器访问,发现能成功设置与获取,在此不做展示。

ad

免费在线工具导航

优网导航旗下整合全网优质免费、免注册的在线工具导航大全

在这里我们基于之前搭建的案例操作:IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境
1、pom.xml新增redis依赖:

 

     org.springframework.boot
     spring-boot-starter-data-redis

2、application.properties新增redis相关配置:

#配置redis
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=1000

3、新建测试代码,运行结果如图:

@Controller
public class RedisController {
    @Autowired
    private RedisTemplate redisTemplate;

    @RequestMapping("/redis")
    public String redis(){
        redisTemplate.opsForValue().set("password","www.panziye.com");
        System.out.println(redisTemplate.opsForValue().get("password"));
        return "success";
    }
}
基于各种整合案例详解Java如何操作Redis?

以上就是各种整合redis的情况,如果有疑问或者建议,请留言评论!

© 版权声明

相关文章

暂无评论

暂无评论...