18.1 准备redis
18.1.1 是什么
是一个key-vue的Nosql。
18.1.2 优势
-
开源免费
-
数据存储
存放在内存,还支持持久化.-存取速度快,并发能力强,数据安全高
-
支持value类型更多
-
支持多个语言客户端
-
还支持集群(支持高并发,海量数据)
18.1.3 使用场景
-
使用数据访问快特点
缓存
-
过期时间
短信验证码等
18.1.4 简单使用
以windows为例进行简单使用
18.1.4.1 下载
https://github.com/microsoftarchive/redis/releases 进行下载
18.1.4.2 安装
绿色软件解压就OK
18.1.4.2 配置
redis.windows.conf中设置密码
18.1.4.3 启动
进入安装路径执行:redis-server.exe redis.windows.confi
18.1.4.4 测试
客户端启动: redis-cli -h 1271.0.0.1 -p 6379
授权 : auth admin
18.2 springboot spring data redis
Spring data:spring对数据操作支持规范,但是我们的数据是多种类型,rdbms(msyql),redis(Nosql),es,mq
Spring data redis :spring操作redis
Spring data jpa :操作关系型数据库
等等
Springboot Spring data redis:简化spirngdata对redis的配置
步骤分析:
1 准备一个springboot项目
2 在springboot中导入spring data redis的strarter
3 application.yml中进行配置
4 写代码测试
18.2.1 准备一个springboot项目
略过
18.2.2 springboot中导入spring data redis的strarter
<!--spirngboot springdata对redis支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
18.2.3 application.yml中进行配置
# redis 属性信息
## redis数据库索引(默认为0)
spring.redis.database=0
## redis服务器地址
spring.redis.host=localhost
## redis服务器连接端口
spring.redis.port=6379
## redis服务器连接密码(默认为空)
spring.redis.password=admin
## 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
## 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
18.2.4 写代码测试
import java.io.Serializable;
//需要实现Serializable,否则会报错Caused by: java.lang.IllegalArgumentException: DefaultSerializer requires a //Serializable payload but received an object of type [User]
public class BaseDomain implements Serializable {
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public BaseDomain(Long id) {
this.id = id;
}
public BaseDomain() {
}
}
//通过继承BaseDomain,进而实现Serializable
public class User extends BaseDomain {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + super.getId() +
", name='" + name + '\'' +
'}';
}
public User() {
}
public User(Long id, String name) {
super(id);
this.name = name;
}
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
public class RedisTest {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private StringRedisTemplate template;
@Test
public void testStr() throws Exception{
template.opsForValue().set("yhptest","yhptsetnmfjfjfj");
String str = template.opsForValue().get("yhptest");
System.out.println(str);
}
@Test
public void testObj() throws Exception{
redisTemplate.opsForValue().set("user",new User(1L,"zs"));
User user = (User) redisTemplate.opsForValue().get("user");
System.out.println(user);
}
18.3 小结
本章节讲解了springboot通过spring data redis完成了对redis的操作