您的位置:首页 > 数据库 > Redis

Spring Boot 2.X 学习日记——整合redis

2019-04-02 23:59 627 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014252106/article/details/88984529

文章目录

Redis介绍

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

随着Spring Boot支持的组件越来越多,技术也越来越成熟。在Spring Boot 2.X以后,对Redis的支持不再仅仅只是提供越来越强大的API,更是在底层,将Redis的默认客户端从

Jedis
改为了
Lettuce

#Lettuce和Jedis

Lettuce
Jedis
都是Java开发中,与Redis进行交互的中间件。
Jedis
实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接
Lettuce
基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例

添加依赖包

compile 'org.springframework.boot:spring-boot-starter-data-redis'

tips:在Spring Boot 2.X后,

Jedis
的相关依赖已经被剔除,改为了
Lettuce

配置Redis

application.yml
中添加redis相关配置

spring:
redis:
host: #地址
port: #端口
password: #密码
timeout: # 连接超时时间(毫秒)
lettuce:
pool:
max-active: #连接池最大连接数(使用负值表示没有限制) 默认 8
max-wait: # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-idle: # 连接池中的最大空闲连接 默认 8
min-idle: # 连接池中的最小空闲连接 默认 0

测试

一切准备就绪后,写个junit测试类来验证代码的正确性

Notice.java

package com.boot.demo.entity;

import java.io.Serializable;

public class Notice implements Serializable {

private static final long serialVersionUID = 210818469999970139L;

private String id;

private String context;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getContext() {
return context;
}

public void setContext(String context) {
this.context = context;
}
}

RedisTest.java

package com.boot.demo.test;

import com.boot.demo.entity.Notice;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

@RunWith(SpringRunner.class)
@SpringBootTest(properties = "spring.main.web-application-type=reactive")
public class RedisTest {

@Resource(name = "redisTemplate")
private ValueOperations<String,Object> valueOperations;

@Test
public void get(){
Notice notice = new Notice();
notice.setId("111");
notice.setContext("Hello");
String key = "string:notice";
valueOperations.set(key,notice);
System.out.println(notice);
notice = (Notice)valueOperations.get(key);
System.out.println(notice);
}
}

全文代码

XXXOperations

Spring Boot中,对Redis的支持,其实主要是通过

Spring Data Redis
这个框架去完成的,它对Redis的支持,主要体现在框架中的XXXOperations,我们在实际开发中可以通过注入这些Operations来完成IO操作。下面简单的列举了几种常用的Operations

接口 描述
HashOperations 处理Hash结构的相关操作
ListOperations 处理List结构的相关操作
SetOperations 处理Set结构的相关操作
ValueOperations 处理String结构的相关操作
ZSetOperations 处理ZSet(或者 Sorted Set)结构的相关操作

想了解更多关于XXXOperations的知识的话,可以访问官方地址

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: