• SpringBoot整合Redis实现简单的set、get


    一、导入pom.xml文件相关的依赖并配置

      

     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
     </dependency>

      以下是在application.xml中进行redis相关的配置(本文采用的springboot版本为2.1.7):

    ######配置redis#######
    # Redis 数据库索引(默认为 0)
    spring.redis.database=0
    # Redis 服务器地址
    spring.redis.host=127.0.0.1
    # Redis 服务器连接端?
    spring.redis.port=6379 
    # Redis 服务器连接密码(默认为空)
    spring.redis.password=
    # 连接池最?连接数(使?负值表示没有限制) 默认 8
    spring.redis.lettuce.pool.max-active=8
    # 连接池最?阻塞等待时间(使?负值表示没有限制) 默认 -1
    spring.redis.lettuce.pool.max-wait=-1
    # 连接池中的最?空闲连接 默认 8
    spring.redis.lettuce.pool.max-idle=8
    # 连接池中的最?空闲连接 默认 0
    spring.redis.lettuce.pool.min-idle=0

      项目运行前记得启动redis的server服务器。。

    二、配置Redis的set、get模板

      这里配置了两个模板,一个是设置存放的值为String的模板redisTemplateForStr,一个是设置存放的值为Object的模板redisTemplateForObj:

    @Configuration
    @EnableCaching
    public class MyRedisConfig extends CachingConfigurerSupport {
    
        @Bean(name="redisTemplateForStr")
        public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
            RedisTemplate<String, String> template = new RedisTemplate<>();
            RedisSerializer<String> redisSerializer = new StringRedisSerializer();
            template.setConnectionFactory(factory);
            //key序列化方式,如果不设置,会有乱码
            template.setKeySerializer(redisSerializer);
            //value序列化
            template.setValueSerializer(redisSerializer);
            //value hashmap序列化
            template.setHashValueSerializer(redisSerializer);
            //key haspmap序列化
            template.setHashKeySerializer(redisSerializer);
            return template;
        }
    
    
        @Bean(name="redisTemplateForObj")
        public RedisTemplate<String, Object> redisTemplate2(RedisConnectionFactory factory) {
            RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
            template.setConnectionFactory(factory);
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            ObjectMapper om = new ObjectMapper();
            om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
            StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
            // key采用String的序列化方式
            template.setKeySerializer(stringRedisSerializer);
            // hash的key也采用String的序列化方式
            template.setHashKeySerializer(stringRedisSerializer);
            // value序列化方式采用jackson
            template.setValueSerializer(jackson2JsonRedisSerializer);
            // hash的value序列化方式采用jackson
            template.setHashValueSerializer(jackson2JsonRedisSerializer);
            template.afterPropertiesSet();
            return template;
        }
    }
    View Code

    三、然后编写相应的工具类

    /**
     * 利用RedisTemplate进行相关set、get方法的封装
     */
    @Repository
    public class RedisTemplateForGetSet {
    
        @Resource(name="redisTemplateForObj")
        RedisTemplate redisTemplate;
    
        @Resource(name="redisTemplateForStr")
        RedisTemplate redisTemplateStr;
    
        public <T> T getObjectFromRedis(String id){
            return  (T)redisTemplate.opsForValue().get(id);
        }
        
        public void setObjectToRedis(String id, Object object){
            redisTemplate.opsForValue().set(id,object);
        }
    
        public void setCheckCodeToRedis(String id, String checkCode){
            redisTemplateStr.opsForValue().set(id,checkCode);
        }
    
        public String getCheckCodeFromRedis(String id){
            String checkCode = (String)redisTemplateStr.opsForValue().get(id);
            return checkCode;
        }
    }

    四、测试

    在注解为RestController的控制层中进行测试:

    @RequestMapping("redis")
        public TUser testRedis(TUser tUser){
            String key = tUser.getId().toString();
            userRedisTemplate.setObjectToRedis(key,tUser);
            TUser user = userRedisTemplate.getObjectFromRedis(key);
            System.out.println(user.toString());
            return user;
        }

    以下是测试结果:

      以上便是简单的redis配置并进行简单的set、get测试。

  • 相关阅读:
    JAVA中使用AES加密解密
    R语言与医学统计图形-【19】ggplot2坐标轴调节
    R语言与医学统计图形-【18】ggplot2几何对象汇总
    R语言与医学统计图形-【17】ggplot2几何对象之热图
    R语言与医学统计图形-【16】ggplot2几何对象之标签与文本
    R语言与医学统计图形-【15】ggplot2几何对象之线图
    R语言与医学统计图形-【13】ggplot2几何对象之盒形图
    R语言与医学统计图形-【11】ggplot2几何对象之散点图
    R语言与医学统计图形-【14】ggplot2几何对象之直方密度图
    R语言与医学统计图形-【12】ggplot2几何对象之条图
  • 原文地址:https://www.cnblogs.com/ring2/p/11399388.html
Copyright © 2020-2023  润新知