springboot中封装的redistemplate模板操作redis常用命令

看到很多帖子都是介绍redis客户端操作redis的命令,没有相关的springboot中redistemplate模板操作redis的命令,所以记录了一下redistemplate模板操作redis的常用命令,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别在于序列化方式不同,当然也可以自己定义序列化方式 redistemplate底层还是使用的jedis或者Lettuce两个客户端,https://blog.csdn.net/yifanSJ/article/details/79513179 ,本次记录的是 如何使用RedisTemplate 操作reids的5种基本数据类型

操作 String类型的数据:
1,将String类型存入到Redis当中:

/**
     * redisTemplate操作普通字符串(存值)
     */
    public void redisSetString(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

2,从redis当中取出String类型的数据:

 /**
     * redisTemplate操作普通字符串 (取值)
  */
    public Object redisGetString(String key) {
        return redisTemplate.opsForValue().get(key);
    }

3.设置reids key的过期时间(原来出现过设置过期时间不起作用,是因为先设置了过期时间 在去存入值到redis ):

     /**
     * 指定缓存失效时间
     * 
     * @param key
     *            键
     * 
     * @param time
     *            时间(秒)
     * 
     * @return
     * 
     */

   public boolean expire(String key, long time) {
        try {
            if (time > 0) {
                redisTemplate.expire(key, time, TimeUnit.SECONDS);
            }
            return true;
         } catch (Exception e) {
             e.printStackTrace();
     return false;
          }

   } 

使用RedisTemplate 操作List类型的数据:
1,将list类型存入到Redis当中:

 /**
     * 将一个list集合存放到redis当中
     * 
     * @param key
     */
    public void redisSetList(String key) {
        List<Integer> list = Arrays.asList(6,9,8,3);
        for (Integer integer : list) {
            // 从当前的数据 向右添加 
            // redisTemplate.opsForList().rightPush(key, integer);
            // 从当前的数据 向左添加 
            redisTemplate.opsForList().leftPush(key, integer);
        }
    }
2,从redis中取出list数据:
 /**
     * 获取list(获取0 -10 索引的数据)
    
   */
    public Object getList(String key) {
        return redisTemplate.opsForList().range(key, 0, 10);
    }

3.获取redis中list的长度:

 /**
     * 获取list指定key的长度
         */
    public Long getListSize(String key) {
        return redisTemplate.opsForList().size(key);
    } 

使用RedisTemplate 操作hash类型的数据:
1.将hash存放到redis当中:

 /**
     * 将map存放到reids
        */
    public void setHash(String key) {
        Map<String, String> hashMap = new HashMap<>();
        //
        hashMap.put("redis", "redis");
        hashMap.put("mysql", "mysql");
        for (Entry<String, String> keyValue : hashMap.entrySet()) {
            redisTemplate.opsForHash().put(key, keyValue.getKey(), keyValue.getValue());
        }
    }
2.将hash从redis当中取出来 根据具体的key取出具体的值:
 /**
     * 获取指定key1的值
        */
    public Object getHash(String key, String key1) {
        // 检测 是否 存在该键
        boolean isKey = redisTemplate.opsForHash().hasKey(key, key1);
        return redisTemplate.opsForHash().get(key, key1);
    }
3.将key中所有的值都取出来:
 /**
     * 获取指定key的所有值
    
   */
    public Object getHash(String key) {
        return redisTemplate.opsForHash().entries(key);
    }

4.根据具体的key移除具体的值:

/**
 * 根据具体key移除具体的值
   */
public void removeKey(String key, String key1) {
    redisTemplate.opsForHash().delete(key, key1);
}

5.移除key值 则key里面的所有值都被移除:

 public void removeStringKey(String key) {
        redisTemplate.delete(key);
    }

使用RedisTemplate 操作set类型的数据:
1.set数据存入redis中

 public void setSet(String key) {
        Set<Object> set = new HashSet<>();
        set.add("setKey");
        set.add("tesetKey");
        for (Object object : set) {
            redisTemplate.opsForSet().add(key, object);
        }
    }
2.从redis当中将set数据取出来:
 public Object getSet(String key) {
        return redisTemplate.opsForSet().members(key);
    } 

使用RedisTemplate 操作sortset类型的数据:
1.将sortSet存放到redis当中:

/**
     * sortset存入redis中
     * 
     * @param key
     */
    public void setZSet(String key) {
        Set<Object> set = new HashSet<>();
        set.add("setKey");
        set.add("tesetKey");
        int i = 0;
        for (Object object : set) {
            i++;
            redisTemplate.opsForZSet().add(key, object, i);
        }
    }
2.将sortset从redis当中取出来的API有很多:
 public Object getZSet(String key) {
        Long size = redisTemplate.opsForZSet().size(key);
        return redisTemplate.opsForZSet().rangeByScore(key, 0, size);
    }

RedisTemplate操作5种基本类型数据,有一些共同的API 比如设置过期时间,和移除key的值,判断key是否存在
1设置过期时间

/**
     * 
     * 指定缓存失效时间
     * 
     * @param key
     *            键
     * 
     * @param time
     *            时间(秒)
     * 
     * @return
     * 
      */
    public boolean expire(String key, long time) {
        try {
            if (time > 0) {
                redisTemplate.expire(key, time, TimeUnit.SECONDS);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
2.检测是否存在key:
 /**
 * 
 * 判断key是否存在
 * 
 * @param key
 *            键
 * 
 * @return true 存在 false不存在
 * 
 */
public boolean checkKey(String key) {
    try {
        return redisTemplate.hasKey(key);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}
3:移除缓存  /**
 * 移除key
 * @param key
 */
public void removeKey(String key) {
    redisTemplate.delete(key);
} 
**总结:**以上就是常见的spring-boot-starter-data-redis中整合redis客户端后的redistemplate模板操作redis的命令

版权声明:本文为weixin_43168010原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。