使用redisTemplate从redis获取所有数据

 更新时间:2022年06月07日 08:56:12   作者:qq_48012160  
这篇文章主要介绍了使用redisTemplate从redis获取所有数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

redisTemplate从redis获取所有数据

	@Autowired
    private RedisTemplate<String,String> redisTemplate;

    @ApiOperation("StationCharger")
    @GetMapping("/StationCharger")
    public AjaxResult init() {
//        redisTemplate.delete("*");
        //获取所有的key
        Set<String> keys = redisTemplate.keys("GEELY:HC1Y:station:*");
//        System.out.println(keys);
        //创建集合
        HashMap<Object, Object> map = new HashMap<>();
        //循环
        for (String key : keys){
            //获取key对应的value
            Object value = redisTemplate.opsForValue().get(key);
            map.put(key,value);
            System.out.println(key);
            System.out.println(value);
        }
        return AjaxResult.success(map);
    }

idea后端效果

swagger测试效果

说说RedisTemplate的常用方法

  • 1.RedisTemplate常用方法
  • 2.String类型
  • 3.Hash类型
  • 4.List类型
  • 5.Set类型
  • 6.zSet类型

Redis常用的数据类型:String、Hash、List、Set、zSet

1.RedisTemplate常用方法

redisTemplate.hasKey(key);				//判断是否有key所对应的值,有则返回true,没有则返回false
redisTemplate.opsForValue().get(key);	//有则取出key值所对应的值
redisTemplate.delete(key);				//删除单个key值
redisTemplate.delete(keys); 			//其中keys:Collection<K> keys
redisTemplate.dump(key);				//将当前传入的key值序列化为byte[]类型
redisTemplate.expire(key, timeout, unit);	//设置过期时间
redisTemplate.expireAt(key, date);		//设置过期时间
redisTemplate.keys(pattern);			//查找匹配的key值,返回一个Set集合类型
redisTemplate.rename(oldKey, newKey);	//返回传入key所存储的值的类型
redisTemplate.renameIfAbsent(oldKey, newKey);	//如果旧值存在时,将旧值改为新值
redisTemplate.randomKey();				//从redis中随机取出一个key
redisTemplate.getExpire(key);			//返回当前key所对应的剩余过期时间
redisTemplate.getExpire(key, unit);		//返回剩余过期时间并且指定时间单位
redisTemplate.persist(key);				//将key持久化保存
redisTemplate.move(key, dbIndex);		//将当前数据库的key移动到指定redis中数据库当中

2.String类型

ValueOperations opsForValue = redisTemplate.opsForValue();
opsForValue.set(key, value);    //设置当前的key以及value值
opsForValue.set(key, value, offset);//用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
opsForValue.set(key, value, timeout, unit);     //设置当前的key以及value值并且设置过期时间
opsForValue.setBit(key, offset, value);    //将二进制第offset位值变为value
opsForValue.setIfAbsent(key, value);//重新设置key对应的值,如果存在返回false,否则返回true
opsForValue.get(key, start, end);    //返回key中字符串的子字符
opsForValue.getAndSet(key, value);    //将旧的key设置为value,并且返回旧的key
opsForValue.multiGet(keys);            //批量获取值
opsForValue.size(key);                //获取字符串的长度
opsForValue.append(key, value);    //在原有的值基础上新增字符串到末尾
opsForValue.increment(key,double increment);//以增量的方式将double值存储在变量中
opsForValue.increment(key,long  increment);    //通过increment(K key, long delta)方法以增量方式存储long值(正值则自增,负值则自减)
 
Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
opsForValue.multiSetIfAbsent(valueMap);     //如果对应的map集合名称不存在,则添加否则不做修改
opsForValue.multiSet(valueMap);                //设置map集合到redis

3.Hash类型

HashOperations opsForHash = redisTemplate.opsForHash();
opsForHash.get(key, field);    //获取变量中的指定map键是否有值,如果存在该map键则获取值,没有则返回null
opsForHash.entries(key);    //获取变量中的键值对
opsForHash.put(key, hashKey, value);    //新增hashMap值
opsForHash.putAll(key, maps);    //以map集合的形式添加键值对
opsForHash.putIfAbsent(key, hashKey, value);    //仅当hashKey不存在时才设置
opsForHash.delete(key, fields);    //删除一个或者多个hash表字段
opsForHash.hasKey(key, field);    //查看hash表中指定字段是否存在
opsForHash.increment(key, field, long increment);    //给哈希表key中的指定字段的整数值加上增量increment
opsForHash.increment(key, field, double increment);    //给哈希表key中的指定字段的整数值加上增量increment
opsForHash.keys(key);                //获取所有hash表中字段
opsForHash.values(key);                //获取hash表中存在的所有的值
opsForHash.scan(key, options);        //匹配获取键值对,ScanOptions.NONE为获取全部键对

4.List类型

ListOperations opsForList = redisTemplate.opsForList();
opsForList.index(key, index);    //通过索引获取列表中的元素
opsForList.range(key, start, end);    //获取列表指定范围内的元素(start开始位置, 0是开始位置,end 结束位置, -1返回所有)
opsForList.leftPush(key, value);    //存储在list的头部,即添加一个就把它放在最前面的索引处
opsForList.leftPush(key, pivot, value);        //如果pivot处值存在则在pivot前面添加
opsForList.leftPushAll(key, value);        //把多个值存入List中(value可以是多个值,也可以是一个Collection value)
opsForList.leftPushIfPresent(key, value);    //List存在的时候再加入
opsForList.rightPush(key, value);    //按照先进先出的顺序来添加(value可以是多个值,或者是Collection var2)
opsForList.rightPushAll(key, value);    //在pivot元素的右边添加值
opsForList.set(key, index, value);        //设置指定索引处元素的值
opsForList.trim(key, start, end);        //将List列表进行剪裁
opsForList.size(key);    //获取当前key的List列表长度
 
//移除并获取列表中第一个元素(如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止)
opsForList.leftPop(key);                
opsForList.leftPop(key, timeout, unit);    
 
//移除并获取列表最后一个元素
opsForList.rightPop(key);
opsForList.rightPop(key, timeout, unit);    
 
//从一个队列的右边弹出一个元素并将这个元素放入另一个指定队列的最左边
opsForList.rightPopAndLeftPush(sourceKey, destinationKey);    
opsForList.rightPopAndLeftPush(sourceKey, destinationKey, timeout, unit);
 
//删除集合中值等于value的元素(index=0, 删除所有值等于value的元素; index>0, 从头部开始删除第一个值等于value的元素; index<0, 从尾部开始删除第一个值等于value的元素)
opsForList.remove(key, index, value);

5.Set类型

SetOperations opsForSet = redisTemplate.opsForSet();
opsForSet.add(key, values);            //添加元素
opsForSet.remove(key, values);        //移除元素(单个值、多个值)
opsForSet.pop(key);                    //删除并且返回一个随机的元素
opsForSet.size(key);                //获取集合的大小
opsForSet.isMember(key, value);        //判断集合是否包含value
opsForSet.intersect(key, otherKey);    //获取两个集合的交集(key对应的无序集合与otherKey对应的无序集合求交集)
opsForSet.intersect(key, otherKeys);//获取多个集合的交集(Collection var2)
opsForSet.intersectAndStore(key, otherKey, destKey);    //key集合与otherKey集合的交集存储到destKey集合中(其中otherKey可以为单个值或者集合)
opsForSet.intersectAndStore(key, otherKeys, destKey);    //key集合与多个集合的交集存储到destKey无序集合中
opsForSet.union(key, otherKeys);    //获取两个或者多个集合的并集(otherKeys可以为单个值或者是集合)
opsForSet.unionAndStore(key, otherKey, destKey);    //key集合与otherKey集合的并集存储到destKey中(otherKeys可以为单个值或者是集合)
opsForSet.difference(key, otherKeys);    //获取两个或者多个集合的差集(otherKeys可以为单个值或者是集合)
opsForSet.differenceAndStore(key, otherKey, destKey);    //差集存储到destKey中(otherKeys可以为单个值或者集合)
opsForSet.randomMember(key);    //随机获取集合中的一个元素
opsForSet.members(key);            //获取集合中的所有元素
opsForSet.randomMembers(key, count);    //随机获取集合中count个元素
opsForSet.distinctRandomMembers(key, count);    //获取多个key无序集合中的元素(去重),count表示个数
opsForSet.scan(key, options);    //遍历set类似于Interator(ScanOptions.NONE为显示所有的)

6.zSet类型

ZSetOperations提供了一系列方法对有序集合进行操作

ZSetOperations opsForZSet = redisTemplate.opsForZSet();
opsForZSet.add(key, value, score);                //添加元素(有序集合是按照元素的score值由小到大进行排列)
opsForZSet.remove(key, values);                    //删除对应的value,value可以为多个值
opsForZSet.incrementScore(key, value, delta);    //增加元素的score值,并返回增加后的值
opsForZSet.rank(key, value);                    //返回元素在集合的排名,有序集合是按照元素的score值由小到大排列
opsForZSet.reverseRank(key, value);                //返回元素在集合的排名,按元素的score值由大到小排列
opsForZSet.reverseRangeWithScores(key, start,end);    //获取集合中给定区间的元素(start 开始位置,end 结束位置, -1查询所有)
opsForZSet.reverseRangeByScore(key, min, max);    //按照Score值查询集合中的元素,结果从小到大排序
opsForZSet.reverseRangeByScoreWithScores(key, min, max);    //返回值为:Set<ZSetOperations.TypedTuple<V>>
opsForZSet.count(key, min, max);                //根据score值获取集合元素数量
opsForZSet.size(key);                            //获取集合的大小
opsForZSet.zCard(key);                            //获取集合的大小
opsForZSet.score(key, value);                    //获取集合中key、value元素对应的score值
opsForZSet.removeRange(key, start, end);        //移除指定索引位置处的成员
opsForZSet.removeRangeByScore(key, min, max);    //移除指定score范围的集合成员
opsForZSet.unionAndStore(key, otherKey, destKey);//获取key和otherKey的并集并存储在destKey中(其中otherKeys可以为单个字符串或者字符串集合)
opsForZSet.intersectAndStore(key, otherKey, destKey);    //获取key和otherKey的交集并存储在destKey中(其中otherKeys可以为单个字符串或者字符串集合)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JAVA常用API总结与说明

    JAVA常用API总结与说明

    这篇文章主要介绍了JAVA常用API总结与说明,包括JAVA线程常用API,JAVA队列常用API,JAVA泛型集合算法常用API,JAVA并发常用API需要的朋友可以参考下
    2022-12-12
  • JPA框架实现分页查询和条件查询功能详解

    JPA框架实现分页查询和条件查询功能详解

    这篇文章主要介绍了JPA框架实现分页查询和条件查询功能,JPA是Java Persistence API的简称,在过去很多数据库的增删查改操作都是用这个框架操作的,感兴趣想要详细了解可以参考下文
    2023-05-05
  • java 过滤器模式(Filter/Criteria Pattern)详细介绍

    java 过滤器模式(Filter/Criteria Pattern)详细介绍

    这篇文章主要介绍了java 过滤器模式(Filter/Criteria Pattern)详细介绍的相关资料,需要的朋友可以参考下
    2016-10-10
  • Java关于桶排序的知识点总结

    Java关于桶排序的知识点总结

    这篇文章给大家总结了关于JAVA中J桶排序的相关知识点和用法分享,有兴趣的读者跟着学习下。
    2018-04-04
  • easyexcel读取excel合并单元格数据的操作代码

    easyexcel读取excel合并单元格数据的操作代码

    这篇文章主要介绍了easyexcel读取excel合并单元格数据的操作代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 浅谈java 字符串,字符数组,list间的转化

    浅谈java 字符串,字符数组,list间的转化

    下面小编就为大家带来一篇浅谈java 字符串,字符数组,list间的转化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 一文带你了解如何正确使用MyBatisPlus

    一文带你了解如何正确使用MyBatisPlus

    在本篇文章中,我们奖通过 MyBatis Plus 来对一张表进行 CRUD 操作,来看看是如何简化我们开发的。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • Java集合之整体结构

    Java集合之整体结构

    Java中集合类是Java编程中使用最频繁、最方便的类。接下来通过本文给大家介绍Java集合之整体结构,一起看看吧
    2016-05-05
  • 如何将Mybatis连接到ClickHouse

    如何将Mybatis连接到ClickHouse

    这篇文章主要介绍了如何将Mybatis连接到ClickHouse,帮助大家更好得理解和学习使用Mybatis,感兴趣的朋友可以了解下
    2021-03-03
  • java关键字final使用方法详解

    java关键字final使用方法详解

    在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,本文就详细说明一下他的使用方法
    2013-11-11

最新评论