redis 工具类,包括基本常用功能,可直接使用

redis工具类使用

  1. 这里使用的是StringRedisTemplate,以及ObjectMapper,作 为转换对象使用
  2. 直接上代码
  3. /**
  • redis操作类 使用此类可使用Autowired注入

  • author:JiangHongYu
    */
    @Service
    public class RedisCommonUtil {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private ObjectMapper objectMapper;

    /**

    • 是否包含Key
    • @param key
    • @return
      */
      public boolean hasKey(String key){
      return stringRedisTemplate.hasKey(key);
      }

    /**

    • 存入redis time默认单位是小时,使用时请自行计算
    • @param key
    • @param o
    • @param time
      */
      public void set(String key,Object o,long time){
      this.delKey(key);
      if(StringUtils.isEmpty(o)) return;
      stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(o),time, TimeUnit.HOURS);
      }

    /**

    • value+=1
    • @param key
    • @return
      */
      public Long incr(String key){
      Long increment = stringRedisTemplate.opsForValue().increment(key);
      return increment;
      }

    /**

    • 获取缓存数据 统一返回String类型,使用时请自行转换
    • @param key
    • @return
      */
      public String get(String key){
      return stringRedisTemplate.opsForValue().get(key);
      }

    /**

    • redis删除单个key
    • @param key
    • @return
      */
      public boolean delKey(String key){
      return stringRedisTemplate.delete(key);
      }

    /**

    • 模糊删除key
    • @param keys
    • @return
      /
      public Long delKeys(String keys) {
      Set key = stringRedisTemplate.keys(keys + "
      ");
      return stringRedisTemplate.delete(key);
      }
      /**此处要注意rightPushAll的坑,下一篇会详细介绍
    • 向右添加
    • @param key
    • @param list
      */
      public void rightPushAll(String key, List list) throws JsonProcessingException {
      // 先删除再添加
      this.delKey(key);
      String [] objArr = new String[list.size()];
      for (int i = 0; i < list.size(); i++) {
      objArr[i] = this.BeanToString(list.get(i));
      }
      stringRedisTemplate.opsForList().rightPushAll(key,objArr);
      }

    /**

    • redis分布式锁 时间单位是分钟,请自行计算
    • @param key
    • @param value
    • @param time
    • @return
      */
      public boolean setIfAbsent(String key ,String value,long time){
      return stringRedisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.MINUTES);
      }

    /**

    • 通过索引获取redis里面的数据
    • @param key
    • @param start
    • @param end
    • @return
      /
      public List rang(String key, long start, long end){
      return stringRedisTemplate.opsForList().range(key,start,end);
      }
      /
      *
    • String 转换成 javaBean 使用完get 返回String 可使用此方法转换javaBean
    • @param str
    • @param t
    • @return
    • @throws JsonProcessingException
      */
      public T StringToBean(String str,Class t) throws JsonProcessingException {
      if(StringUtils.isEmpty(str)) return null;
      //忽略大小写
      objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
      objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
      return objectMapper.readValue(JSON.parse(str).toString(), t);
      }

    /**

    • javaBean转String
    • @param obj
    • @return
    • @throws JsonProcessingException
      */
      public String BeanToString(Object obj) throws JsonProcessingException {
      return objectMapper.writeValueAsString(obj);
      }
  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值