我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用redisTemplate从redis获取所有数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用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可以为单个字符串或者字符串集合)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用redisTemplate从redis获取所有数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis如何获取hash中所有的数据

要获取Redis中hash中所有的数据,可以使用以下命令:HGETALL key其中,key是要获取数据的hash的键名。这个命令会返回hash中所有字段及其对应的值,以数组的方式返回。另外,也可以使用以下命令来获取hash中所有的字
redis如何获取hash中所有的数据
2024-04-22

怎么从redis中获取数据

从 redis 中获取数据的两种主要方法为:get 命令:获取单个键的值。mget 命令:一次获取多个键的值。从 Redis 中获取数据方法:从 Redis 中获取数据有以下两种主要方法:GET 命令:用于获取单个键的值。MGET 命令
怎么从redis中获取数据
2024-04-19

使用golang中的过滤器从mongodb复合集合中获取所有数据

问题内容我尝试使用我在 api 请求正文中指定的名称字段获取所有数据。我为 .find() 函数创建了一个过滤器。但我无法得到任何结果(响应正文显示 null,根本没有错误)。您可以在底部看到我的模型文件和代码的其他部分。控制器:fu
使用golang中的过滤器从mongodb复合集合中获取所有数据
2024-02-06

Gorm 根据嵌套表的条件从表中获取所有数据

php小编西瓜为你介绍一种高效的数据获取方法——Gorm。Gorm是一个基于Golang的ORM库,它可以轻松地与数据库交互。在使用Gorm时,我们可以根据嵌套表的条件从表中获取所有数据,无需繁琐的手动查询。这种方法不仅简化了代码,还提高了
Gorm 根据嵌套表的条件从表中获取所有数据
2024-02-10

如何从redis获取多条数据类型

要从Redis获取多条数据类型,可以使用以下命令:1. GET:用于获取字符串类型的数据。可以使用单个GET命令来获取多个键的值。例如,GET key1 key2 key3。2. HGETALL:用于获取哈希类型的数据。可以使用HGETAL
2023-09-06

PHP如何从Redis缓存中获取数据

要从Redis缓存中获取数据,可以使用PHP的Redis扩展提供的方法。下面是一个简单的示例代码:connect('127.0
PHP如何从Redis缓存中获取数据
2024-05-06

sql获取mysql所有数据库,表名

当面对可能存在的大数据,不能把所有数据放在一张表里,否则会影响到查询效率,那么我们需要对数据库进行分表分区,例如一天一张表,当插入数据时,判断表是否存在,不存在则创建新表,并进行数据插入。如果我们需要在程序中通过sql语句查询来获得存在的数据库,以及某个数据库
sql获取mysql所有数据库,表名
2019-04-07

spring使用RedisTemplate操作Redis数据库的案例

小编给大家分享一下spring使用RedisTemplate操作Redis数据库的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一.什么是RedisRedis是一个非关系型数据库,具有很高的存取性能,一般用作缓存数据库
2023-06-14

PHP中怎么获取所有数据库

今天就跟大家聊聊有关PHP中怎么获取所有数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。要查询系统中都存在哪些数据库,可使用mysql_list_dbs()函数,其语法格式如下:
2023-06-17

SpringBoot怎么使用RedisTemplate操作Redis数据类型

这篇文章主要讲解了“SpringBoot怎么使用RedisTemplate操作Redis数据类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么使用RedisTempl
2023-06-29

怎么取出redis有序集合所有数据

可以使用ZRANGE命令来获取有序集合中所有的元素数据。语法如下:ZRANGE key start stop [WITHSCORES]其中,key是有序集合的键名,start和stop是取出元素的起始和结束索引,如果想取出所有元素,则可以
怎么取出redis有序集合所有数据
2024-04-09

java如何获取数据库所有表名

要获取数据库中的所有表名,可以使用如下的Java代码:```javaimport java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverMana
2023-09-27

sql怎么获取数据库所有表名

要获取数据库所有表名,可以使用以下SQL查询:SELECT table_nameFROM information_schema.tablesWHERE table_schema = 'your_database_name&#
sql怎么获取数据库所有表名
2024-03-02

怎么使用ExecuteScalar从数据库中获取单个数据

要使用ExecuteScalar从数据库中获取单个数据,需要遵循以下步骤:创建一个数据库连接对象,并打开连接。创建一个SQL查询语句,用于获取所需的数据。创建一个命令对象,将查询语句和数据库连接对象作为参数传入。调用命令对象的Exec
2023-10-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录