Springboot项目中使用Redis

一、在Springboot项目中使用Redis

1.简单使用

  • 引入依赖
		<dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-data-redis</artifactId>  
        </dependency> 
  • 编写配置文件
spring:
  redis:
    host: 172.16.253.2
    port: 6379
    jedis:
      pool:
        max-active: 10
        max-idle: 8
        max-wait: 1000
  • 使用RedisTemplate模版对象操作redis
 	@Autowired
    private RedisTemplate<String,String> redisTemplate;


//存储对象
    @Test
    void testRedis(){
        ValueOperations<String, String> ops = redisTemplate.opsForValue();
        ops.set("xiaoming","xiaoming");
    }


	@Test
    void testRedis1(){
        String value = redisTemplate.opsForValue().get("xiaoming");
        System.out.println(value);
        
    }

2.RedisTemplate模版对象

RestTemplate、TestRestTemplate、RabbitTemplate这一些列都是使用了模版设计模式。

RedisTemplate提供了一套操作Redis的基本模版,使用模版来更加方便的操作redis。

1)序列化器

RedisTemplate在存储数据的时候,会对键和值进行序列化。

  • String序列化器:会把数据用字符串来存储。但是不能存储java对象
  • jdk序列化器:默认的序列化器,做一次序列化,把java对象转换成二进制,反序列化时把二进制转换成java对象。

在使用时会进行一次整合:

 @Test
    public void testSializer(){
        //把键序列化器设置成String的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
//        redisTemplate.setValueSerializer(new StringRedisSerializer());
//        // 会把值-》json
//        redisTemplate.setKeySerializer(new JdkSerializationRedisSerializer());
        //把值的序列化器设置成Jdk的序列化器。
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());

        User user = new User();
        user.setId(1002L);
        user.setName("xiaozhao");
        user.setAge(33);
        redisTemplate.opsForValue().set("xiaozhao",user);


    }

2)在springboot中配置RedisTemplate<String,Object>

Springboot整合redis后默认会提供一个RedisTemplate<String,String>,需要手动配置RedisTemplate<String,Object>

在配置类中实现:

@Configuration
@EnableAutoConfiguration
public class RedisConfig {

    @Bean
    public RedisTemplate<String,Object> getRedisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
        //设置redisTemplate连接工厂
        redisTemplate.setConnectionFactory(factory);
        //设置redis的键的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }

}

3.RedisTemplate中对其他数据类型的操作

 				//对String类型进行操作
        redisTemplate.opsForValue();
        //对hash进行操作
        HashOperations hashOps = redisTemplate.opsForHash();
        //对list进行操作
        ListOperations listOps = redisTemplate.opsForList();
        //对set进行操作
        SetOperations setOps = redisTemplate.opsForSet();
        //对zSet进行操作
        ZSetOperations zSetOps = redisTemplate.opsForZSet();
posted @ 2021-07-22 08:17  牛奶配苦瓜  阅读(576)  评论(0)    收藏  举报