Spring data redis

一、Spring data redis介绍

1.什么是spring data?

  Spring Data是一个用于简化数据库访问的开源框架。其主要目标是使得对数据的访问变得方便快捷,包含多个子项目:

  • Spring Data JDBC- 对JDBC的Spring Data存储库支持。

  • Spring Data JPA - 对JPA的Spring Data存储库支持。

  • Spring Data MongoDB - 对MongoDB的基于Spring对象文档的存储库支持。

  • Spring Data Redis - 从Spring应用程序轻松配置和访问Redis。

  • ...........

2.什么是Spring data redis?

   Spring data redis时Spring data下的一个子模块,作用:简化redis操作

   spring-data-redis针对jedis提供了如下功能:

(1)提供了一个高度封装的“RedisTemplate”类,里面封装了对于Redis的五种数据结构的各种操           作,包括:

 - redisTemplate.opsForValue():操作字符串
 - redisTemplate.opsForHash():操作hash
 - redisTemplate.opsForList():操作list
 - redisTemplate.opsForSet():操作set
 - redisTemplate.opsForZSet():操作zset

(2)SpringBoot2.x后RedisTemplate采用是lettuce(基于netty采用异步非阻塞式lO)进行通信,大              并发下比jedis效率更高。  

(3)RedisTemplate模板使用序列化器操作redis数据,预定义的序列化方案有:

序列化器说明
JdkSerializationRedisSerializer   POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputstream/ObjectOutputstream进行序列化操作,最终redis-server中将存储字节序列。是目前最常用的序列化策略。
stringRedisSerializer   Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是"new String(bytes,charset)"和“string.getBytes(charset)"的直接封装。是最轻量级和高效的策略。
GenericJackson2JsonRedisSerializer    jackson-json工具提供了javabean与json之间的转换能力,可以将pojo实例序列化成json格式存储在redis中,也可以将json格式的数据转换成pojo实例。

3.为什么用RedisTemplate而不用jedis?

   springboot2.x后RedisTemplate默认底层时lettuce,大并发下luttuce(netty)效率更高

   RedisTemplate可以设置通用序列化器

4.spring data redis的启动器

   spring-boot-starter-data-redis

二、Spring Data Redis入门 

    1、pom.xml
        spring-boot-starter-data-redis
        spring-boot-starter-web
        spring-boot-starter-test
    2、application.yml
        spring:
          redis:
            cluster:
              nodes:
                - 192.168.113.134:7001
                - 192.168.113.134:7002
                - 192.168.113.134:7003
                - 192.168.113.134:7004
                - 192.168.113.134:7005
                - 192.168.113.134:7006
            jedis:
              pool:
                max-active: 20 #连接池最大连接数
                max-idle: 10 #连接池中的最大空闲连接
                min-idle: 5 # 连接池中的最小空闲连接
    3.com.powershop.config
        @Bean
        public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
                RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();

                //设置通用序列化器
                redisTemplate.setKeySerializer(new StringRedisSerializer());
                redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
                redisTemplate.setHashKeySerializer(new StringRedisSerializer());
                redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());

                redisTemplate.setConnectionFactory(factory);
                return redisTemplate;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值