RedisTemplate集合使用说明-opsForList(二)

2023-11-06

   1、leftPush(K key, V value)

 

  在变量左边添加元素值。

 

Java代码  

  1. redisTemplate.opsForList().leftPush("list","a");  
  2. redisTemplate.opsForList().leftPush("list","b");  
  3. redisTemplate.opsForList().leftPush("list","c");  

 

     2、index(K key, long index)

 

  获取集合指定位置的值。

 

Java代码  

  1. String listValue = redisTemplate.opsForList().index("list",1) + "";  
  2. System.out.println("通过index(K key, long index)方法获取指定位置的值:" + listValue);  

 

     3、range(K key, long start, long end)

 

获取指定区间的值。

 

Java代码  

  1. List<Object> list =  redisTemplate.opsForList().range("list",0,-1);  
  2. System.out.println("通过range(K key, long start, long end)方法获取指定范围的集合值:"+list);  

    4、leftPush(K key, V pivot, V value)

 

     把最后一个参数值放到指定集合的第一个出现中间参数的前面,如果中间参数值存在的话。

 

Java代码  

  1. redisTemplate.opsForList().leftPush("list","a","n");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过leftPush(K key, V pivot, V value)方法把值放到指定参数值前面:" + list);  

 

     5、leftPushAll(K key, V... values)

 

  向左边批量添加参数元素。

 

Java代码  

  1. redisTemplate.opsForList().leftPushAll("list","w","x","y");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过leftPushAll(K key, V... values)方法批量添加元素:" + list);  

 

     6、leftPushAll(K key, Collection<V> values)

 

   以集合的方式向左边批量添加元素。

 

Java代码  

  1. List newList = new ArrayList();  
  2. newList.add("o");  
  3. newList.add("p");  
  4. newList.add("q");  
  5. redisTemplate.opsForList().leftPushAll("list",newList);  
  6. list =  redisTemplate.opsForList().range("list",0,-1);  
  7. System.out.println("通过leftPushAll(K key, Collection<V> values)方法以集合的方式批量添加元素:" + list);  

 

     7、leftPushIfPresent(K key, V value)

 

  如果存在集合则添加元素。

 

Java代码  

  1. redisTemplate.opsForList().leftPushIfPresent("presentList","o");  
  2. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  3. System.out.println("通过leftPushIfPresent(K key, V value)方法向已存在的集合添加元素:" + list);  

 

     8、rightPush(K key, V value)

 

   向集合最右边添加元素。

 

Java代码  

  1. redisTemplate.opsForList().rightPush("list","w");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过rightPush(K key, V value)方法向最右边添加元素:" + list);  

 

      9、rightPush(K key, V pivot, V value)

 

   向集合中第一次出现第二个参数变量元素的右边添加第三个参数变量的元素值。

 

Java代码  

  1. redisTemplate.opsForList().rightPush("list","w","r");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过rightPush(K key, V pivot, V value)方法向最右边添加元素:" + list);  

 

     10、rightPushAll(K key, V... values)

 

   向右边批量添加元素。

 

Java代码  

  1. redisTemplate.opsForList().rightPushAll("list","j","k");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过rightPushAll(K key, V... values)方法向最右边批量添加元素:" + list);  

 

    11、rightPushAll(K key, Collection<V> values)

 

   以集合方式向右边添加元素。

 

Java代码  

  1. newList.clear();  
  2. newList.add("g");  
  3. newList.add("h");  
  4. redisTemplate.opsForList().rightPushAll("list",newList);  
  5. list =  redisTemplate.opsForList().range("list",0,-1);  
  6. System.out.println("通过rightPushAll(K key, Collection<V> values)方法向最右边以集合方式批量添加元素:" + list);  

 

    12、rightPushIfPresent(K key, V value)

 

  向已存在的集合中添加元素。

Java代码  

  1. redisTemplate.opsForList().rightPushIfPresent("presentList","d");  
  2. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  3. System.out.println("通过rightPushIfPresent(K key, V value)方法已存在的集合向最右边添加元素:" + list);  

    13、size(K key)

 

获取集合长度。

 

Java代码  

  1. long listLength = redisTemplate.opsForList().size("list");  
  2. System.out.println("通过size(K key)方法获取集合list的长度为:" + listLength);  

     14、leftPop(K key)

 

       移除集合中的左边第一个元素。

 

Java代码  

  1. Object popValue = redisTemplate.opsForList().leftPop("list");  
  2. System.out.print("通过leftPop(K key)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("list",0,-1);  
  4. System.out.println(",剩余的元素是:" + list);  

 

     15、leftPop(K key, long timeout, TimeUnit unit)

 

   移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

 

Java代码  

  1. popValue = redisTemplate.opsForList().leftPop("presentList",1, TimeUnit.SECONDS);  
  2. System.out.print("通过leftPop(K key, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  4. System.out.println(",剩余的元素是:" + list);  

     16、rightPop(K key)

        移除集合中右边的元素。

       

Java代码  

  1. popValue = redisTemplate.opsForList().rightPop("list");  
  2. System.out.print("通过rightPop(K key)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("list",0,-1);  
  4. System.out.println(",剩余的元素是:" + list);  

 

      17、rightPop(K key, long timeout, TimeUnit unit)

 

   移除集合中右边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

 

Java代码  

  1. popValue = redisTemplate.opsForList().rightPop("presentList",1, TimeUnit.SECONDS);  
  2. System.out.print("通过rightPop(K key, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  4. System.out.println(",剩余的元素是:" + list);  

     18、rightPopAndLeftPush(K sourceKey, K destinationKey)

 

  移除集合中右边的元素,同时在左边加入一个元素。

Java代码  

  1. popValue = redisTemplate.opsForList().rightPopAndLeftPush("list","12");  
  2. System.out.print("通过rightPopAndLeftPush(K sourceKey, K destinationKey)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("list",0,-1);  
  4. System.out.println(",剩余的元素是:" + list);  

     19、rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)

  移除集合中右边的元素在等待的时间里,同时在左边添加元素,如果超过等待的时间仍没有元素则退出。

Java代码  

  1. popValue = redisTemplate.opsForList().rightPopAndLeftPush("presentList","13",1,TimeUnit.SECONDS);  
  2. System.out.println("通过rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);  
  3. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  4. System.out.print(",剩余的元素是:" + list);  

  20、set(K key, long index, V value)

  在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标+n则会报错。

Java代码  

  1. redisTemplate.opsForList().set("presentList",3,"15");  
  2. list =  redisTemplate.opsForList().range("presentList",0,-1);  
  3. System.out.print("通过set(K key, long index, V value)方法在指定位置添加元素后:" + list);  

  21、remove(K key, long count, Object value)

  从存储在键中的列表中删除等于值的元素的第一个计数事件。count> 0:删除等于从左到右移动的值的第一个元素;count< 0:删除等于从右到左移动的值的第一个元素;count = 0:删除等于value的所有元素。

Java代码  

  1. long removeCount = redisTemplate.opsForList().remove("list",0,"w");  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过remove(K key, long count, Object value)方法移除元素数量:" + removeCount);  
  4. System.out.println(",剩余的元素:" + list);  

      22、trim(K key, long start, long end)

  截取集合元素长度,保留长度内的数据。

Java代码  

  1. redisTemplate.opsForList().trim("list",0,5);  
  2. list =  redisTemplate.opsForList().range("list",0,-1);  
  3. System.out.println("通过trim(K key, long start, long end)方法截取后剩余元素:" + list);  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RedisTemplate集合使用说明-opsForList(二) 的相关文章

  • 在Maven中生成Version.java文件

    我有一个使用 Ant 脚本构建的 Java 项目 我正在尝试将项目转换为 Maven 其中一项任务生成一个名为 Version java 的 Java 源文件 其中包含编译时间戳的静态字符串表示形式 如下所示 package com foo
  • Jackson JSON + Java 泛型

    我正在尝试将以下 JSON 反序列化 映射到List
  • Java将字符串解析为double

    如何解析字符串中的这个 Double 00034800 变成 Double 值 最后两位数字实际上是小数点 所以我正在寻找的结果是348 00 是否有这样的格式可以与十进制格式一起使用 Well String s 00034800 doub
  • 连接外部 Accumulo 实例和 java

    我正在尝试使用 Accumulo 连接到虚拟机 问题是 我无法将其连接到 Java 中 我可以看到 Apache 抛出的网页 但我无法让它与代码一起工作 我认为这是缺乏知识的问题而不是真正的问题 但我找不到这方面的文档 所有示例都使用 lo
  • 非易失性领域的出版与阅读

    public class Factory private Singleton instance public Singleton getInstance Singleton res instance if res null synchron
  • Kafka - 如何同时使用过滤器和过滤器?

    我有一个 Kafka 流 它从一个主题获取数据 并且需要将该信息过滤到两个不同的主题 KStream
  • 如何以编程方式使用包含多列的 where-in 子句执行 PostgreSQL 查询?

    我的查询是这样的 select from plat customs complex where code t code s in 01013090 10 01029010 90 它在 psql 控制台中运行良好 我的问题是如何在客户端代码中
  • 为什么在 10 个 Java 线程中递增一个数字不会得到 10 的值?

    我不明白 a 的值为0 为什么 a 不是10 那段代码的运行过程是怎样的 是否需要从Java内存模型来分析 这是我的测试代码 package com study concurrent demo import lombok extern sl
  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j
  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve

随机推荐

  • [WSL-1-Ubuntu]使用oh-my-zsh美化你的WSL(附脚本)

    在腾讯云买的那个1c2g的服务器 想用mycat搭建一个mysql cluser 用docker部署了一主一从内存就没了一半 可一主一从没啥作用 起码也得2主2从吧 而且还有HA呢 但内存和钱包不给力 所以就想到WSL这个方案 在开wsl这
  • 发现1个拿来即用的Python高级脚本,收藏!

    今天 给大家推荐一些用Python爬虫做私活的渠道 先给各位还不熟悉Python爬虫的朋友介绍一下 可以短时间获得大量资料 可以进一步数据分析 当然也可以获得收益 学会Python爬虫以后 还可以通过各种渠道 网站接单 接单群 私人介绍 接
  • 今日头条信息流广告怎么做?(今日头条信息流广告费用解析)

    国内的各种渠道千千万 主流的广告平台不算多也不算少 而今日头条与其它平台最大区别在于 个性化推荐和智能分发 可以简单理解为 今日头条上投放的广告 是通过 机器人代码 过滤再分发出去的 因此了解 机器人 在分发过程中遵循的规则 随着网络的发展
  • pytorch: RuntimeError: DataLoader worker (pid(s) 27292) exited unexpectedly

    厉害了 用win10特有的bug 搞半天 就是把pytorch下dataloader的其中一个num workers参数注释掉 可能是win10只有一个thread的原因 torch utils data DataLoader self d
  • 同一套服务如何应对不同终端的需求——服务适配

    经过前几个章节的实践 会员已可以绑定手机号 更新个人信息 绑定个人车辆信息 开通月卡 签到等功能 下面从客户端查看自己的数据入手 再聊聊服务调用的问题 简单处理 我们已经将用户数据进行垂直拆分 分布在不同数据库中 当客户端数据展现时 就需要
  • 参加2012中国数据库技术大会大会有感

    上周末参加了 DTCC Database Technology Conference China 2012中国数据库技术大会 见到了很多熟人 开了3天 好多议题 我去了后两天 第一天是周五 没好意思向公司请假 干货还是很多的 比某些扯淡的行
  • 代理服务器(Proxy)

    目录 1 什么是代理服务器 2 代理服务器的作用 3 代理服务器的工作流程 4 安装代理服务器软件及配置文件解析 squid 5 正向代理 6 修改数据存放位置 7 设置磁盘使用阈值 代理 两字顾名思义就是以代理人的身份去帮助其他人取得所需
  • C++数组:发工资

    题目描述 财务处要给公司的n位员工发工资了 请你帮助计算最少要多少张人民币才能给每位员工发工资而不必找零呢 已知人民币的面额为100元 50元 10元 5元 2元和1元这6种 输入格式 第一个值为正整数n 后面接着n个正整数表示n位员工的工
  • Python天文数据处理——Astropy

    前言 Astropy是一个用于天文数据处理的Python包 它包含了许多常用的天文学函数和工具 可以用于处理 分析和可视化各种类型的天文数据 Astropy最新版本是v4 3 官网地址为https www astropy org Astro
  • Django计算机毕业设计个性化大学生图书推荐系统(程序+LW)Python

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 项目运行 环境配置 Pychram社区版 python3 7 7 Mysql5 7 HBuilderX list pip Navicat11 Django nodejs 项目技
  • Linux进行AES加密每次结果都不一致并且解密失败报错

    1 现象 windows操作系统下进行 123456 的AES加密 encrypted message is below QLNYZyjRnKF zxAjzDt lw decrypted message is below 123456 阿里
  • [数值分析拟合]Matlab三次样条插值拟合数据

    三次样条插值是一种运用极为广泛的工程插值算法 本文章编写的函数默认使用端点处的导数值代替给定的两端点的导数值使用三转角构造法进行插值 该函数也可传入端点导数数值进行分析 对数据进行方便而迅速的拟合 但是目前没有三弯矩构造法 一 三次样条插值
  • Qt信号槽——传递自定义数据类型

    Qt信号槽 传递自定义数据类型 Qt的信号槽机制支持传递int short double等C语言的基本类型的变量 也可以传递Qt自己的数据类型 但是在传递用户自己定义的数据类型 或其他数据类型是需要进行注册的 原因 当一个signal被放到
  • 解决python打包的exe程序运行报错闪退不留痕迹问题

    打了exe 运行的时候往往会因为找不到文件而报错闪退 此时根本不知道程序问题出在哪里 也因为程序执行太快而抓不到屏 最简单的方法如下 1 打开已打包好的exe文件目录 2 资源管理器输入cmd 运行命令行程序 3 命令行窗口内运行exe程序
  • JDBC与Mybitabs实习笔记

    JDBC与mybatis学习 JDBC的使用 1 导入依赖jar包 2 加载驱动类 3 创建连接对象 4 创建传输对象 SQL的执行器 将SQL语句传输给SQL服务器 5 执行SQL语句 6 关闭资源 1 导入依赖jar包 去mvnreoi
  • oracle存储过程----mybatis传入参数调用存储过程查询

    上一篇的链接是 oracle存储过程 异常的写法介绍 有这样的需求 比如共有表B1 B17 17张表 现在要求传入年度 行政区划 查询出所有符合条件的B1 B17的所有记录 当然 仅查询这些表中共同有的字段 因为这算是跨表查询了 一般我们写
  • vue基础入门

    1 vue简介 1 1 什么是vue 官方概念 Vue 读音 vju 类似于view 是一套用于构建用户界面的前端框架 1 2 vue 的特性 vue 框架的特性 主要体现在如下两方面 数据驱动视图 双向数据绑定 数据驱动视图 在使用了 v
  • 用 卡莱特A35播放盒子 在局域网内更新单行文本

    将播放盒和led正常连接之后 1 到官方网下载配套软件PlayerMaster 下载开发文档 2 使用配套软件 PlayerMaster 找到并查看目标设备的ip 3 在开发文档中找到 ColorlightRESTfulAPI V1 9 中
  • hive分桶表详解

    为什么要用分桶表 单个分区或者表中的数据量越来越大 当分区不能更细粒的划分数据时 所以会采用分桶技术将数据更细粒度的划分和管理 分区提供了一个隔离数据和优化查询的便利的方式 但是当分区的数量过多时 会产生过多的小分区 这样会给namenod
  • RedisTemplate集合使用说明-opsForList(二)

    1 leftPush K key V value 在变量左边添加元素值 Java代码 redisTemplate opsForList leftPush list a redisTemplate opsForList leftPush li