springboot整合redis

帅比萌擦擦* 提交于 2020-03-26 10:03:20

3 月,跳不动了?>>>

1.2 回顾

  • redis目录
    • redis-server.exe redis服务命令,配置windows服务后,不需要手动运行该程序。
    • redis-cli.exe redis客户端命令,用于在cmd中发送命令,使用GUI或Jedis后,不再使用该程序
    • redis.window.conf 核心配置文件
  • redis服务安装
//安装命令:
redis-server.exe --service-install redis.windows.conf --loglevel verbose 
//卸载命令:
 redis-server --service-uninstall
  • Jedis 使用:使用java程序操作redis
//创建
new Redis(host, port)
//存放
redis.set(k,v)
//获得
String v = redis.get(k)
//释放资源
redis.close()
  • spring boot 整合 redis
    • 统一使用模板:RedisTemplate ,支持多种类型,不专一。
    • 字符串对应模板:StringRedisTemplate

1.3 答疑

2.前置技术:Redis使用

2.1 Spring boot 整合

2.1.1 环境搭建

  • 1)修改pom.xml文件,添加依赖(redis、测试)
    <dependencies>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
        <!--测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>
  • 2)修改application.yml文件,配置redis信息
spring:
  redis:
    database:   0     #确定使用库
    host: 127.0.0.1   #redis服务地址
    port: 6379        #redis 端口号
  • 3)编写配置类【可选】
package com.czxy.changgou3.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;

/**
 * Created by liangtong.
 */
@Configuration
public class RedisConfig {

    [@Bean](https://my.oschina.net/bean)
    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory connectionFactory){
        return new StringRedisTemplate(connectionFactory);
    }

}

  • 佐证
package com.czxy.changgou3.redis;

import com.czxy.changgou3.TestApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

/**
 * Created by liangtong.
 */
//SpringRunner类就是之前的SpringJUnit4ClassRunner类
@RunWith(SpringRunner.class)        //spring 整合 Junit
@SpringBootTest(classes = TestApplication.class)    //spring boot 整合 junit
public class TestTemplate2 {

    [@Resource](https://my.oschina.net/u/929718)  //注意:命名必须是 stringRedisTemplate
    private StringRedisTemplate stringRedisTemplate;

    @Test
    public void demo01(){
        System.out.println(stringRedisTemplate);
    }
}

2.1.3 回顾:整合Junit

/**
 * Created by liangtong.
 */
//SpringRunner类就是之前的SpringJUnit4ClassRunner类
@RunWith(SpringRunner.class)        //spring 整合 Junit
@SpringBootTest(classes = TestApplication.class)    //spring boot 整合 junit
public class TestTemplate2 {

    @Test
    public void demo01(){
        System.out.println("demo01.....");
    }
}

2.1.4 StringRedisTemplate 常用方法

  • Redis 一共有5种类型,StringRedisTemplate提供对5种类型操作。
方法 描述
==opsForValue()== 操作字符串
==delete(key)== 根据key删除记录
opsForHash() 操作hash
opsForList() 操作list
opsForSet() 操作set
opsForZSet() 操作有序set
  • 具体操作,通过 opsForValue() 获得字符串操作对象,具体的操作
方法 描述
ops.set(key,value); 向redis中插入数据。因为这个没有设置过期时间所以是永久存储的
ops.set(key,value,time,timeUtil) 向redis中插入数据。第三个参数是一个long型的时间。最后一个参数是时间的单位
ops.get(key) 获取redis中指定key 的value值。
package com.czxy.changgou3.redis;

import com.czxy.changgou3.TestApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

/**
 * Created by liangtong.
 */
//SpringRunner类就是之前的SpringJUnit4ClassRunner类
@RunWith(SpringRunner.class)        //spring 整合 Junit
@SpringBootTest(classes = TestApplication.class)    //spring boot 整合 junit
public class TestTemplate2 {

    @Resource  //注意:命名必须是 stringRedisTemplate
    // @Resource 先按照名称注入,如果没有匹配再按照类型(有多个实例则无法选择)
    private StringRedisTemplate stringRedisTemplate;

    @Test
    public void demo01(){
        //添加字符串数据
        stringRedisTemplate.opsForValue().set("test001","我是测试数据");
    }

    /**
     *  TimeUnit 时间单位
     *  TimeUnit.SECONDS 秒
     *  TimeUnit.MINUTES 分
     *  TimeUnit.HOURS 小时
     *  TimeUnit.DAYS 添加
     *  TimeUnit.MILLISECONDS 毫秒
     *  TimeUnit.MICROSECONDS 微秒
     *  TimeUnit.NANOSECONDS 纳秒
     */
    @Test
    public void demo02(){
        //添加字符串数据,有效时间5分钟
        stringRedisTemplate.opsForValue().set("test002","测试数据",5, TimeUnit.MINUTES);
    }

    @Test
    public void demo03(){
        //获得字符串数据
        String str = stringRedisTemplate.opsForValue().get("test001");
        System.out.println(str);
    }

    @Test
    public void demo04(){
        //删除数据
        stringRedisTemplate.delete("test001");
    }
}

2.2 Redis数据类型

  • redis是一种高级的key-value的存储系统,其中value支持五种数据类型
类型 描述
==string== 字符串
list 字符串列表
set 字符串集合
zset 有序字符串集合
hash 哈希表
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!