SpringBoot整合Redis

 

Redis:

         学习过Redis的都知道Redis是一种NoSQL,具有读写快速、支持丰富的数据类型等很多优点。Redis是一个开源的、先进的key-value存储系统。

本人使用的Redis是安装在Linux系统,使用的SpringBoot版本是比较新的2.1.5,Redis是3.0.0版本的。

1、创建SpringBoot工程后,添加整合所需要的依赖包:

注意:可能是版本问题,本人的测试类中去掉了<scope>test</scope>,因为在后面使用测试时未能检测到所需的测试类,可能时受test的约束吧,所有检测不到,去掉以后便可以了。

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <!--日志文件依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--Redis依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
    </dependencies>

 

2、配置application.yml配置文件,也可以使用application.properties,配置信息都是一样的:

Redis安装在Linux下 host路径就填写访问虚拟机的ip地址

一般Redis是没有密码的,所以密码可以为空

database 是选择序号为1的数据库

需要注意的是:yml格式文件在: 后需要空一个,不然启动项目时会报错误信息

#SpringBoot整合Redis
spring:
  redis:
    host: (Redis访问路径)
    port: 6379
    password:
    database: 1

#log文件输出地址
logging:
  path: D://spring-log

 

3、创建数据操作层RedisDao:

package com.tl.demo.Dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Repository;

import java.util.concurrent.TimeUnit;

/*
    通过RedisTemplate访问Redis
    注入StringRedisTemplate的Bean来对Redis数据库中的字符串类型的数据进行操作
 */
@Repository //将类注入Spring IoC容器中
public class RedisDao {

    @Autowired
    private StringRedisTemplate template;

    //向Redis设置String类型的数据
    public void setKey(String key,String value){
        ValueOperations<String,String> ops = template.opsForValue();
        ops.set(key,value,1, TimeUnit.MINUTES);//1分钟过期
    }

    //从Redis中读取String类型的数据
    public String getValue(String key){
        ValueOperations<String,String> ops = this.template.opsForValue();
        return  ops.get(key);
    }

}

 

4、创建测试类SpringBootApplicationTest进行测试:

在测试之前需进入Redis的src目录下输入./redis-server 命令启动服务端即可!

package com.tl.demo.Test;


import com.tl.demo.Dao.RedisDao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

//SpringBoot测试必须加以下两个注解
@RunWith(SpringRunner.class) //不添加,所有注解会被忽略
@SpringBootTest
public class SpringBootRedisApplicationTest {

    //日志文件打印
    private Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    RedisDao redisDao;

    @Test
    public void testRedis(){
        redisDao.setKey("name","tl");
        redisDao.setKey("age","18");
        logger.info(redisDao.getValue("name"));
        logger.info(redisDao.getValue("age"));
    }

}

最终控制台会输出结果,也可以在你指定的日志文件路劲中查看测试结果。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐