RedisTemplate中opsForValue的使用

2023-11-10

Spring 封装了 RedisTemplate 对象来进行对redis的各种操作,它支持所有的 redis 原生的 api。 查阅点资料下面总结看下Redis中opsForValue()方法的使用介绍: 

1、set(K key, V value)

新增一个字符串类型的值,key是键,value是值。

//新增一个字符串类型的值,key是键,value是值。
redisTemplate.opsForValue().set("stringValue","bbb");  

2、get(Object key)

获取key键对应的值。

//获取key键对应的值。
String stringValue = redisTemplate.opsForValue().get("key")

3、append(K key, String value)

在原有的值基础上新增字符串到末尾。

//在原有的值基础上新增字符串到末尾。
redisTemplate.opsForValue().append("key", "appendValue");

String stringValueAppend = redisTemplate.opsForValue().get("key");

System.out.println("通过append(K key, String value)方法修改后的字符串:"+stringValueAppend);  

4、get(K key, long start, long end)

截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串。

//截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串。
 
String cutString = redisTemplate.opsForValue().get("key", 0, 3);  

System.out.println("通过get(K key, long start, long end)方法获取截取的字符串:"+cutString);  

5、getAndSet(K key, V value)

获取原来key键对应的值并重新赋新值。

//获取原来key键对应的值并重新赋新值。
String oldAndNewStringValue = redisTemplate.opsForValue().getAndSet("key", "ccc");  

System.out.print("通过getAndSet(K key, V value)方法获取原来的值:" + oldAndNewStringValue );  

String newStringValue = redisTemplate.opsForValue().get("key");  

System.out.println("修改过后的值:"+newStringValue);  

6、setBit(K key, long offset, boolean value)

key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value。

//key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value。

redisTemplate.opsForValue().setBit("key",1,false);  

newStringValue = redisTemplate.opsForValue().get("key")+"";  

System.out.println("通过setBit(K key,long offset,boolean value)方法修改过后的值:"+newStringValue);

  

 7、getBit(K key, long offset)

判断指定的位置ASCII码的bit位是否为1。

//判断指定的位置ASCII码的bit位是否为1。
boolean bitBoolean = redisTemplate.opsForValue().getBit("key",1);  

System.out.println("通过getBit(K key,long offset)方法判断指定bit位的值是:" + bitBoolean);  

8、size(K key)

获取指定字符串的长度

Long stringValueLength = redisTemplate.opsForValue().size("key");  

System.out.println("通过size(K key)方法获取字符串的长度:"+stringValueLength);  

9、increment(K key, double delta)

以增量的方式将double值存储在变量中。 

//以增量的方式将double值存储在变量中。
double stringValueDouble = redisTemplate.opsForValue().increment("doubleKey",5);   

System.out.println("通过increment(K key, double delta)方法以增量方式存储double值:" + stringValueDouble);  

10、increment(K key, long delta)

  以增量的方式将long值存储在变量中。 

//以增量的方式将long值存储在变量中。
double stringValueLong = redisTemplate.opsForValue().increment("longKey",6);   

System.out.println("通过increment(K key, long delta)方法以增量方式存储long值:" + stringValueLong);  

11、setIfAbsent(K key, V value)

  如果键不存在则新增,存在则不改变已经有的值。 

//如果键不存在则新增,存在则不改变已经有的值。
boolean absentBoolean = redisTemplate.opsForValue().setIfAbsent("absentKey","fff");  

System.out.println("通过setIfAbsent(K key, V value)方法判断变量值absentValue是否存在:" + absentBoolean);  

if(absentBoolean){  

    String absentValue = redisTemplate.opsForValue().get("absentKey")+"";  

    System.out.print(",不存在,则新增后的值是:"+absentValue);  

    boolean existBoolean = redisTemplate.opsForValue().setIfAbsent("absentKey","eee");  

    System.out.print(",再次调用setIfAbsent(K key, V value)判断absentValue是否存在并重新赋值:" + existBoolean);  

    if(!existBoolean){  

        absentValue = redisTemplate.opsForValue().get("absentKey")+"";  

        System.out.print("如果存在,则重新赋值后的absentValue变量的值是:" + absentValue);  

12、set(K key, V value, long timeout, TimeUnit unit)

   设置变量值的过期时间。

// 设置变量值的过期时间。
 
redisTemplate.opsForValue().set("timeOutKey", "timeOut", 5, TimeUnit.SECONDS);  

String timeOutValue = redisTemplate.opsForValue().get("timeOutKey")+"";  

System.out.println("通过set(K key, V value, long timeout, TimeUnit unit)方法设置过期时间,过期之前获取的数据:"+timeOutValue);  

Thread.sleep(5*1000);  

timeOutValue = redisTemplate.opsForValue().get("timeOutKey")+"";  

System.out.print(",等待10s过后,获取的值:"+timeOutValue);  

13、set(K key, V value, long offset)

  覆盖从指定位置开始的值。 

//  覆盖从指定位置开始的值。
redisTemplate.opsForValue().set("absentKey","dd",1);  

String overrideString = redisTemplate.opsForValue().get("absentKey");  

System.out.println("通过set(K key, V value, long offset)方法覆盖部分的值:"+overrideString);  

14、multiSet(Map<? extends K,? extends V> map)

   设置map集合到redis。

//  设置map集合到redis。
Map valueMap = new HashMap();  

valueMap.put("valueMap1","map1");  

valueMap.put("valueMap2","map2");  

valueMap.put("valueMap3","map3");  

redisTemplate.opsForValue().multiSet(valueMap);  

15、multiGet(Collection<K> keys)

  根据集合取出对应的value值。 

//根据List集合取出对应的value值  

List paraList = new ArrayList();  

paraList.add("valueMap1");  

paraList.add("valueMap2");  

paraList.add("valueMap3");  

List<String> valueList = redisTemplate.opsForValue().multiGet(paraList);  

for (String value : valueList){  

    System.out.println("通过multiGet(Collection<K> keys)方法获取map值:" + value);  

}

16、multiSetIfAbsent(Map<? extends K,? extends V> map)

  如果对应的map集合名称不存在,则添加;如果存在则不做修改。 

//  如果对应的map集合名称不存在,则添加;如果存在则不做修改。
Map valueMap = new HashMap();  

valueMap.put("valueMap1","map1");  

valueMap.put("valueMap2","map2");  

valueMap.put("valueMap3","map3");  

redisTemplate.opsForValue().multiSetIfAbsent(valueMap);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RedisTemplate中opsForValue的使用 的相关文章

随机推荐

  • Kali--MSF-永恒之蓝详解(复现、演示、远程、后门、加壳、修复)

    目录 一 永恒之蓝概述 二 SMB协议 三 准备工作 四 漏洞复现 1 主机发现 2 端口扫描 3 利用模块 五 演示功能 1 获取cmd 2 捕获屏幕 3 上传文件 4 下载文件 5 远程登录 6 上传后门 7 免杀加壳 8 运行wann
  • 开博说明

    新开博客 开博说明 开博说明 大家好 这是我个人第一个技术博客 由于本人工作涉及金融量化方面 我会在今后的博客中主要涉及如下内容 方便有志之士一起探讨学习 也方便我个人查漏补缺 谢谢 python pandas sklearn tensor
  • MATLAB生成 FPGA代码

    写作时间 2020 12 13 标题 使用 HDL Coder 将 MATLAB 转换为 FPGA 目录 1 从 MATLAB 生成 HDL 代码 2 MATLAB 到硬件工作流 3 MATLAB 算法示例 正文 1 从 MATLAB 生成
  • PyQt4编程之如何做菜单栏

    菜单栏是大部分软件都有的 菜单栏能提供便捷的帮助 记事本的菜单栏就是最简单的一个例子 等过几天我会写记事本的菜单栏了再另外发代码出来 下面的代码是Copy的 import sys from PyQt4 import QtGui QtCore
  • Python2,python3调用face++api

    由于官网给的api只能支持python2 然而自己改成3的话特别麻烦 花了两三天都没有改好 查阅各种资料都没有结果 今天偶遇一代码 非常感谢这位博主 现将其代码和我的使用样例献上 希望能够帮助到和我一样的小白 该博主的代码 Face API
  • 用Lex(flex)和yacc(bison)写的简单计算器

    Lex文件如下 include cal tab h option noyywrapinteger 0 9 dreal 0 9 0 9 ereal 0 9 0 9 EedD 0 9 real dreal ereal nl nplus minu
  • 使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能

    文章目录 问题 获得计算机的ipv6地址 ipv6变化问题 解决 桌面远程控制 ipv6控制路由器 解决 私有云盘搭建 创建服务端B的环境配置 创建服务端可以访问的用户账户 配置服务器对ipv6地址访问的监听 创建ipv6访问客户端 NAT
  • ubuntu使用docker安装jdk和tomcat (一)

    Docker是一个开源的引擎 可以轻松的为任何应用创建一个轻量级的 可移植的 自给自足的容器 开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署 包括VMs 虚拟机 bare metal OpenStack 集群和其他的基础应用平
  • IP地址的组成和划分(3)

    文章目录 一 IP地址组成 二 IP地址的划分 1 A类地址 2 B类地址 3 C类地址 4 D类地址 5 E类地址 一 IP地址组成 IP地址由4部分数字组成 每部分数字对应于8位二进制数字 各部分之间用小数点分开 这是点分二进制 如果换
  • 解决mysql不是内部或外部命令 环境变量 并且

    安装Mysql后 当我们在cmd中敲入mysql时会出现 Mysql 不是内部或外部命令 也不是可运行的程序或其处理文件 打开我的电脑在我的电脑右键中选择属性 然后单击选择高级系统设置 在系统属性的 高级 中选择环境变量path 选择Mys
  • 宏观经济浅学20210711

    M2 大类资产配置 GDP 周期 https www bilibili com video BV1V5411e76f from search seid 3336101618933886388 宏观经济站把控 统治地位 宏观经济研究 经济为什
  • 三合一浴霸必须一直接通取暖开关才能控制照明和风扇的解决方法

    刚新租了一个二室房子 入住后发现这样一个奇怪的问题 要想只让三合一 照明 取暖 通风 浴霸只照明或者只通风 必须得把取暖打开才行 并且取暖必须一直打开 否则一旦断开 照明和取暖也用不了了 头一次遇见这样的问题 首先怀疑是否是浴霸就是这么设计
  • Kotlin IO操作

    前段时间学习了一点内容 写了一篇Groovy开发工具包 我当时就在想Kotlin怎么没有好用的文件操作API呢 后来我发现我太傻了 Kotlin这么好用的语言怎么可能没有自己的文件API呢 Kotlin的IO操作都在kotlin io包下
  • 数据结构习题解析与实验指导-严蔚敏数据结构-第三章:栈和队列(刷题记录)

    目录 第三章 栈和队列 刷题记录 P 48 49 第一题 2022年4月15日 星期五 晚上19 20 19 35 第三章 栈和队列 刷题记录 P 48 49 第一题 2022年4月15日 星期五 晚上19 20 19 35 算法思想 两栈
  • allegro 丝印 对齐_Cadence Allegro 17.2高级功能- Label Tune 批量字符对齐功能

    Allegro的全称是Cadence Allegro PCB Designer 是Cadence公司推出的一个完整的高性能印制电路板设计套件 通过顶尖的技术 它为创建和编辑复杂 多层 高速 高密度的印制电路板设计提供了一个交互式 约束驱动的
  • UE中UPROPERTY部分说明符

    在UE的C 编程中 通常使用UPROPERTY EditAnywhere 宏将属性公开给UE编辑器 使得可以在UE编辑器中对这些属性进行修改 避免了多次编译的繁琐 这个宏也有一些说明符 不同的含义 EditAnywhere 括号中必须有这个
  • oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序

    在使用Database configuration Assistant创建数据库时 在创建到85 的时候报错 错误提示内容如下 错误分析 经过查看警告中给出的日志文件 F develop oracle data app Administra
  • PHP 7Ghost实现反向代理功能,不需要Nginx,支持替换

    虽然Nginx可以方便 简单地实现网站反向代理 但是也存在一定的不方便 此处省略1000字 7ghost是一款基于PHP的网站反向代理 反向绑定域名 程序 能够快速高效的反向代理所指定的网站 并拥有丰富的内容替换 请求头设置 7Ghost这
  • MSP430F5529——中断理解

    认识低功耗模式 MSP430的中断 需要两个部分 一部分是打开中断 另外一部分是编写中断服务函数 打开中断 BIS SR与 bis SR register 首先我们得知道 bis SR register和 BIS SR是一个玩意 查看宏定义
  • RedisTemplate中opsForValue的使用

    Spring 封装了 RedisTemplate 对象来进行对redis的各种操作 它支持所有的 redis 原生的 api 查阅点资料下面总结看下Redis中opsForValue 方法的使用介绍 1 set K key V value