Spring Boot+Redis项目搭建

Redis是一个基于键值对的开源内存数据存储,当然Redis也可以做数据缓存。

1.Spring对Redis的支持

(1).配置
Spring对Redis的支持也是通过Spring Data Redis来实现的,Spring Data JPA为我们提供了连接相关的ConnectionFactory和数据操作相关的RedisTemplate。在此特别指出,Spring Data Redis只对Redis 2.6和2.8 版本做过测试。

根据Redis的不同的java客户端,Spring Data Redis提供了如下的ConnectionFactory:
JedisConnectionFactory:使用Jedis作为Redis客户端
JredisConnectionFactory:使用Jredis作为Redis客户端
LettuceConnectionFactory:使用Lettuce作为Redis客户端
SrpConnectionFactory:使用Spullara/redis-protocol作为Redis客户端

配置方式如下:

@Bean
Public RedisConnectionFactory redisConnectionFactory() {
    return new JedisConnectionFactory();
}

RedisTemplate配置方式如下:

@Bean
Public RedisTemplate<Object, Object> redisTemplate() throws UnknownHostException {
    RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
    Template.setConnectionFactory(redisConnectionFactory());
    return template;
}

(2).使用
Spring Data Redis为我们提供了RedisTemplate和StringRedisTemplate两个模板来进行数据操作,其中,StringRedisTemplate只针对键值都是字符型的数据进行操作。

RedisTemplate和StringRedisTemplate提供的主要数据访问方法如下:
opsForValue():操作只有简单属性的数据
opsForList():操作含有list的数据
opsForSet():操作只有set的数据
opsForZSet():操作只有ZSet(有序的set)的数据
opsForHash():操作只有hash的数据

(3).定义Serializer
当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。
RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。

2.Spring Boot对Redis的支持

Spring Boot对Redis的支持位于org.springframework.boot.autoconfigure.redis包中。
Spring Boot+Redis项目搭建_第1张图片
RedisAutoConfiguration为我们默认配置了JedisConnectionFactory、RedisTemplate以及StringRedisTemplate,让我们可以直接使用Redis作为数据存储。
RedisProperties向我们展示了可以使用以“spring.redis”为前缀的属性在application.properties中配置Redis,主要属性如下:

Spring Boot+Redis项目搭建_第2张图片

3.实战

(1).安装Redis
非Docker安装:去http://redis.io/download下载适合版本的Redis
Docker安装:先下载好Redis镜像,然后通过下面命令运行容器
Docker run -d -p 6379:6379 redis redis-server
并在VirtualBox配置端口映射,如图:
Spring Boot+Redis项目搭建_第3张图片
Redis数据管理可以使用Redis Client,下载地址为https://github.com/caoxinyu/RedisClient,安装完成后如图:

Spring Boot+Redis项目搭建_第4张图片

(2).新建Spring Boot项目
搭建Spring Boot项目,依赖为Redis(spring-boot-starter-redis)和Web(spring-boot-starter-web)。

项目结构与配置如下:

Spring Boot+Redis项目搭建_第5张图片

(3).代码

领域模型类:
Spring Boot+Redis项目搭建_第6张图片
省略了getting、setting方法

代码解释:
此类必须实现系列化接口,因为使用Jackson做序列化需要一个空构造函数。

数据访问:
Spring Boot+Redis项目搭建_第7张图片

代码解释:
1.Spring Boot已为我们配置StringRedisTemplate,在此处可以直接注入
2.Spring Boot已为我们配置RedisTemplate,在此处可以直接注入
3.可以使用@Resource注解指定stringRedisTemplate,可注入基于字符串的简单属性操作方法
4.可以使用@Resource注解指定redisTemplate,可注入基于对象的简单属性操作方法

配置
Spring Boot为我们自动配置了RedisTemplate,而RedisTemplate使用的是JdkSerializationRedisSerializer,这个对我们演示的Redis Client很不直观,因为JdkSerializationRedisSerializer使用而径直形式存储数据的,所以在此我们将自动配置RedisTemplate并定义Serializer。 代码如下:

Spring Boot+Redis项目搭建_第8张图片

代码解释:
1.设置值(value)的序列化采用Jackson2JsonRedisSerializer
2.设置键(key)的序列化采用StringRedisSerializer

控制器代码:
Spring Boot+Redis项目搭建_第9张图片

(4).运行测试

访问http://localhost:8084/set,此处查看Redis Client。如下:

Spring Boot+Redis项目搭建_第10张图片
Spring Boot+Redis项目搭建_第11张图片

访问http://localhost:8084/getStr,页面显示如下:

Spring Boot+Redis项目搭建_第12张图片
访问http://localhost:8084/getPerson,页面显示如下:

Spring Boot+Redis项目搭建_第13张图片

你可能感兴趣的:(j2ee相关)