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
//创建
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 端口号
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 |
哈希表 |
来源:oschina
链接:https://my.oschina.net/ilovejava/blog/3211670