RedisTemplet boundValueOps中方法使用说明

介绍

boundValueOps主要用于操作Redis的字符串的,它可以先在boundValueOps(“key”)中写上key名,然后接方法名,这样以后的操作就不需要写key的名称,比如redisTemplate.boundValueOps(“key”).set(“value”);当我们需要对一个key同时做多个操作时,我们做如下操作:

//先设置为2然后自增1
BoundValueOperations operations=redisTemplate.boundValueOps("key");
operations.set("2");
operations.increment();

以下各方法皆来自于Redis的命令,命令详细介绍参考https://blog.csdn.net/ppjsyw/article/details/125081150

一、设值

1.设置键值对

作用

设置一个键值对,类似set key value

方法

void set(V value);

参数说明

value:值

示例

redisTemplate.boundValueOps("key").set("value");

2.键不存在时设置

作用

当key不存在时设置一个键值对,类似setnx key value

方法
Boolean setIfAbsent(V value);
说明
  • 返回值:key不存在为true,key存在为false
  • value:值

示例

redisTemplate.boundValueOps("key").setIfAbsent("value");

3.键存在时设置

作用

当key存在时设置,类似set key value XX

方法

Boolean setIfPresent(V value);

参数说明
  • 返回值:key存在为true,key不存在为false
  • value:值

示例

redisTemplate.boundValueOps("key").setIfPresent("value");

4.同时设值过期时间(参数为:TimeUnit)

作用

在设置完键值对后,设置过期时间,类似于setex key seconds value

方法
void set(V value, long timeout, TimeUnit unit);

Boolean setIfAbsent(V value, long timeout, TimeUnit unit);

Boolean setIfPresent(V value, long timeout, TimeUnit unit);
说明
  • value:值

  • timeout:多少时间单位

  • unit:时间单位

    • TimeUnit.NANOSECONDS:纳秒
    • TimeUnit.MICROSECONDS:微秒
    • TimeUnit.MILLISECONDS:毫秒
    • TimeUnit.SECONDS:秒种
    • TimeUnit.MINUTES:分钟
    • TimeUnit.HOURS:小时
    • TimeUnit.DAYS:天
示例
//过期时间为一秒钟
redisTemplate.boundValueOps("key").set("value",1,TimeUnit.SECONDS);

//过期时间为一分钟
redisTemplate.boundValueOps("key").setIfAbsent("value",1,TimeUnit.MINUTES);

//过期时间为二小时
redisTemplate.boundValueOps("key").setIfPresent("value",1,TimeUnit.HOURS);

5.同时设置过期时间(单位:Duration)

作用

在设置完键值对后,设置过期时间,类似于setex key seconds value

方法
void set(V value, Duration timeout);

default void setIfAbsent(V value, Duration timeout);

Boolean setIfPresent(V value, Duration timeout);
说明
  • value:值
  • timeout:时间单位,可链式调用
    • Duration.ofDays(1):天
    • Duration.ofHours(1):时
    • Duration.ofMinutes(1):分
    • Duration.ofSeconds(1):秒
    • Duration.ofMillis(1):毫秒
    • Duration.ofNanos(1):纳秒
示例
//过期时间是1天1小时
redisTemplate.boundValueOps("key").set("value", Duration.ofDays(1).ofHours(1));

//过期时间是2天1小时
redisTemplate.boundValueOps("key").setIfAbsent("value", Duration.ofDays(2).ofHours(1));

//过期时间是3天3秒钟
redisTemplate.boundValueOps("key").setIfPresent("value", Duration.ofDays(3).ofSeconds(3));

二.获取

1.获取key的值

作用

获取key的值,类似于get key

方法

V get();

说明

  • 返回值:key的值

示例

redisTemplate.boundValueOps("key").get();

2.获取key并删除

作用

获取key的值并删除,类似于getdel key

方法

V getAndDelete();

说明

  • 返回值:key的旧值

示例

redisTemplate.boundValueOps("key").getAndDelete();

3.获取旧值并设置新值

作用

获取key的旧值,并设置新值,类似于getset key value

方法

V getAndSet(V value);

说明

  • 返回值:key的旧值
  • value:要设置的值

示例

redisTemplate.boundValueOps("key").getAndSet();

4.获取key的值并设置过期时间(单位:TimeUnit)

作用

获取key的之后,之后设置过期时间,类似于getex key

方法

V getAndExpire(long timeout, TimeUnit unit);

说明

  • 返回值:key的值

  • timeout:多少时间单位

  • unit:时间单位

    • TimeUnit.NANOSECONDS:纳秒
    • TimeUnit.MICROSECONDS:微秒
    • TimeUnit.MILLISECONDS:毫秒
    • TimeUnit.SECONDS:秒种
    • TimeUnit.MINUTES:分钟
    • TimeUnit.HOURS:小时
    • TimeUnit.DAYS:天

示例

redisTemplate.boundValueOps("key").getAndExpire(1,TimeUnit.HOURS);

5.获取key的值并设置过期时间(单位:Duration)

作用

获取key的之后,之后设置过期时间,类似于getex key

方法

V getAndExpire(Duration timeout);

说明

  • 返回值:key的值
  • timeout:时间单位,可链式调用
    • Duration.ofDays(1):天
    • Duration.ofHours(1):时
    • Duration.ofMinutes(1):分
    • Duration.ofSeconds(1):秒
    • Duration.ofMillis(1):毫秒
    • Duration.ofNanos(1):纳秒

示例

//过期时间是3天3小时
redisTemplate.boundValueOps("key").getAndExpire(Duration.ofDays(3).ofSeconds(3));

6.获取key的值并清除过期时间

作用

先获取key的值然后删除过期时间,类似于 set key value KEEPTTL

方法

V getAndPersist();

说明

  • 返回值:key的值

示例

redisTemplate.boundValueOps("key").getAndPersist();

三 .自增、自减

1. 自增1

作用

给指定的key自增1,类似incr key

方法

Long increment();

说明

  • 返回值:自增后的值

示例

redisTemplate.boundValueOps("key").increment();

2. 自减1

作用

给指定的key自减1,类似decr key

方法

Long decrement();

说明

  • 返回值:自减后的值

示例

redisTemplate.boundValueOps("key").decrement();

3.自增指定整数

作用

给指定的key自增指定整数值,类似incrby key increment

方法

Long increment(long delta);

说明

  • 返回值:自增后的值
  • delta:要增加的值

示例

redisTemplate.boundValueOps("key").increment(3);

4.自减指定整数

作用

给指定的key自减指定整数值,类似decrby key increment

方法

Long decrement(long delta);

说明

  • 返回值:自减后的值
  • delta:要减的值

示例

redisTemplate.boundValueOps("key").decrement(3);

5.自增指定小数

作用

给指定的key自减指定小数值,类似incrbyfloat key increment

方法

Double increment(double delta);

说明

  • 返回值:自增后的值
  • delta:要增加的值

示例

redisTemplate.boundValueOps("key").increment(3.3);

四.其他

1.追加字符串

作用

在指定的key后面追加字符串,类似于append key value

方法

Integer append(String value);

说明

  • 返回值:追加后字符串的长度

  • value:需要追加的字符串

示例

redisTemplate.boundValueOps("key").append("value");

2.获得长度

作用

获得一个key的值的长度,类似strlen key

方法

Long size();

说明

  • 返回值:字符串的长度

示例

redisTemplate.boundValueOps("key").size();

3.获得指定范围的字符串

作用

获得key的值在start-stop的内容,类似getrange key start stop

方法

String get(long start, long end);

说明

  • 返回值:start-stop的内容
  • start:开始索引
  • end:结束索引

示例

redisTemplate.boundValueOps("key").get(0,5);

4.替换指定索引的内容

作用

将索引为offset的地方地方为指定的字符串,类似于setrange key offset value

方法

void set(V value, long offset);

说明

  • value:需要替换的内容
  • offset:指定索引

示例

redisTemplate.boundValueOps("key").set("value",0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值