前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springBoot整合spring-data-redis

springBoot整合spring-data-redis

作者头像
爱撒谎的男孩
修改2019-12-31 11:43:02
9060
修改2019-12-31 11:43:02
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

文章目录

  1. 1. SpringBoot整合Spring data redis
    1. 1.1. 依赖
    2. 1.2. 连接配置
    3. 1.3. 序列化方式的配置
    4. 1.4. StringRedisTemplate
    5. 1.5. RedisTemplate

SpringBoot整合Spring data redis

依赖

代码语言:javascript
复制
<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
   </dependency>

连接配置

代码语言:javascript
复制
spring:
  redis:
    host: ******   ## redis的主机地址
    port: 6379

序列化方式的配置

  • 默认采用的是jdk的序列化
  • 我们可以改变成json序列化方式,如下:
代码语言:javascript
复制
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.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
 * Redis的配置类
 * @author Administrator
 *
 */
@Configuration
public class RedisConfig {
    
    /**
     * 重写Redis序列化方式,使用Json方式:
     * 当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。
     * Spring Data JPA为我们提供了下面的Serializer:
     * GenericToStringSerializer、Jackson2JsonRedisSerializer、JacksonJsonRedisSerializer、JdkSerializationRedisSerializer、OxmSerializer、StringRedisSerializer。
     * 在此我们将自己配置RedisTemplate并定义Serializer。
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
//      JdkSerializationRedisSerializer jdkSerializationRedisSerializer = new JdkSerializationRedisSerializer();
        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        // 设置值(value)的序列化采用FastJsonRedisSerializer。
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
//        redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
        // 设置键(key)的序列化采用StringRedisSerializer。
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
    
}

StringRedisTemplate

  • 这个只能存放字符串,如果需要存放对象,那么需要将其转换成json存储即可

RedisTemplate

  • 配置好序列化方式之后,即可注入,如下:
代码语言:javascript
复制
@RunWith(SpringRunner.class)
@SpringBootTest    //springBoot测试类,可以自定义测试类,不过需要引用这两个注解
public class BlueApplicationTests {
	@Resource
	private RedisTemplate<String, Object> redisTemplate;
	
	@Test
	public void test2(){
		Person person=new Person();
		person.setAge(22);
		person.setName("陈加兵");
		redisTemplate.opsForHash().put("p", "3", person);
	}
	
	@Test
	public void test3(){
		Person person= (Person) redisTemplate.opsForHash().get("p", "3");
		System.out.println(person);
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot整合Spring data redis
    • 依赖
      • 连接配置
        • 序列化方式的配置
          • StringRedisTemplate
            • RedisTemplate
            相关产品与服务
            文件存储
            文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档