redis工具类

redis工具包

  1. 创建RedisConfig类

  2. allRedisTemplate类中先实现序列化

  3. 无论什么都转换为<String,object>格式

 @Configuration
 public class RedisConfig {
 
     @Bean
     public RedisTemplate<String, Object> allRedisTemplate(RedisConnectionFactory factory) {
         //new一个template的新对象
         RedisTemplate<String,Object> template = new RedisTemplate<>();
  //开启factory工厂
         template.setConnectionFactory(factory);
         // 使用Jackson2JsonRedisSerialize 替换默认序列化(默认采用的是JDK序列化)
         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
         //ObjectMapper是Jackson提供的一个类,作用是将java对象与json格式相互转化
         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);
         // value序列化方式采用jackson
         template.setValueSerializer(jackson2JsonRedisSerializer);
         // hash的value序列化方式采用jackson
         template.setHashValueSerializer(jackson2JsonRedisSerializer);
         template.afterPropertiesSet();
         return template;
    }
 }

 

  1. 在实现工具类自定义添加(笔者只添加了三个)

 @Component
 public class RedisUtil {
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
     /**
      * 设置指定 key 的值
      * @param key
      * @param value
      */
     public void set(String key, Object value) {
         redisTemplate.opsForValue().set(key, value);
    }
 
     /**
      * 获取指定 key 的值
      * @param key
      * @return
      */
     public Object get(String key) {
         return redisTemplate.opsForValue().get(key);
    }
 
 
     /**
      * 删除key
      * @param key
      */
     public void delete(String key) {
         redisTemplate.delete(key);
         System.out.println("111");
    }
 
     /**
      * 判断key是否存在
      * @param key 键
      * @return true 存在 false不存在
      */
     public boolean hasKey(String key) {
         try {
             return redisTemplate.hasKey(key);
        } catch (Exception e) {
             e.printStackTrace();
             return false;
        }
    }
 
 }
  1. 在测试

     public void test002() {
         // SET key value: 设置指定 key 的值
         redisUtil.set("strKey1", "hello spring boot redis");
         // GET key: 获取指定 key 的值
         String value = (String) redisUtil.get("strKey1");
         System.out.println(value);
 
         redisUtil.set("strKey2", new Prizedraw("ID10086", "theName", 11));
         Prizedraw Prizedraw = (Prizedraw) redisUtil.get("strKey2");
         System.out.println(Prizedraw);
 
         redisUtil.delete("strKey2");
         redisUtil.hasKey("strKey2");
 
 //       redisString.set("strkey3", 12);
 //       String value1 = (String) redisString.get("strKey2");
 //       System.out.println(value1);
 
    }

原文链接1

原文链接2

 

posted @ 2020-12-03 17:44  大兵好啊啊、  阅读(241)  评论(0)    收藏  举报