opsForValue主要用于操作Redis的字符串的,使用方式:redisTemplate.opsForValue().方法名,比如
redisTemplate.opsForValue().set(,"value");
以下各方法皆来自于Redis的命令,命令详细介绍参考https://blog.csdn.net/ppjsyw/article/details/125081150
设置一个键值对,类似set key value
void set(K key, V value);
redisTemplate.opsForValue().set("key","value");
当key不存在时设置一个键值对,类似setnx key value
Boolean setIfAbsent(K key, V value);
key:键名
返回值:key不存在为true,key存在为false
value:值
redisTemplate.opsForValue().setIfAbsent("key","value");
当key存在时设置,类似set key value XX
Boolean setIfPresent(K key, V value);
返回值:key存在为true,key不存在为false
key:键名
value:值
redisTemplate.opsForValue().setIfPresent("key","value");
在设置完键值对后,设置过期时间,类似于setex key seconds value
void set(K key, V value, long timeout, TimeUnit unit);
Boolean setIfAbsent(K key, V value, long timeout, TimeUnit unit);
Boolean setIfPresent(K key, V value, long timeout, TimeUnit unit);
key:键名
value:值
timeout:多少时间单位
unit:时间单位
//过期时间为一秒钟
redisTemplate.opsForValue().set("key","value",1,TimeUnit.SECONDS);
//过期时间为一分钟
redisTemplate.opsForValue().setIfAbsent("key","value",1,TimeUnit.MINUTES);
//过期时间为二小时
redisTemplate.opsForValue().setIfPresent("key","value",1,TimeUnit.HOURS);
在设置完键值对后,设置过期时间,类似于setex key seconds value
void set(K key, V value, Duration timeout);
default void setIfAbsent(K key, V value, Duration timeout);
Boolean setIfPresent(K key, V value, Duration timeout);
key:键名
value:值
timeout:时间单位,可链式调用
//过期时间是1天1小时
redisTemplate.opsForValue().set("key","value", Duration.ofDays(1).ofHours(1));
//过期时间是2天1小时
redisTemplate.opsForValue().setIfAbsent("key","value", Duration.ofDays(2).ofHours(1));
//过期时间是3天3秒钟
redisTemplate.opsForValue().setIfPresent("key","value", Duration.ofDays(3).ofSeconds(3));
设置多个键值对,类似于mset key value [key value …]
void multiSet(Map<? extends K, ? extends V> map);
Map map=new HashMap();
map.put("k1","v1");
map.put("k2","v2");
redisTemplate.opsForValue().multiSet(map);
当给的所有key都不存在,就批量设置键值对,类似于msetnx key value[key value …]
Boolean multiSetIfAbsent(Map<? extends K, ? extends V> map);
返回值:key都不存在就为true,否则为false
map:多个键值对
Map map=new HashMap();
map.put("k1","v1");
map.put("k2","v2");
redisTemplate.opsForValue().multiSetIfAbsent(map);
获取key的值,类似于get key
V get(Object key);
redisTemplate.opsForValue().get("key");
获取key的值并删除,类似于getdel key
V getAndDelete(K key);
redisTemplate.opsForValue().getAndDelete("key");
获取key的旧值,并设置新值,类似于getset key value
V getAndSet(K key,V value);
redisTemplate.opsForValue().getAndSet("key","value");
获取key的之后,之后设置过期时间,类似于getex key
V getAndExpire(K key, long timeout, TimeUnit unit);
返回值:key的值
key:键名
timeout:多少时间单位
unit:时间单位
redisTemplate.opsForValue().getAndExpire("key",1,TimeUnit.HOURS);
获取key的之后,之后设置过期时间,类似于getex key
V getAndExpire(K key, Duration timeout);
//过期时间是3天3小时
redisTemplate.opsForValue().getAndExpire("key",Duration.ofDays(3).ofSeconds(3));
先获取key的值然后删除过期时间,类似于 set key value KEEPTTL
V getAndPersist(K key);
redisTemplate.opsForValue().getAndPersist("key");
批量获取key的值,类似于mget key [key …]
List<V> multiGet(Collection<K> keys);
List<String> list=new ArrayList<>();
list.add("k1");
list.add("k2");
redisTemplate.opsForValue().multiGet(list);
给指定的key自增1,类似incr key
Long increment(K key);
redisTemplate.opsForValue().increment("key");
给指定的key自减1,类似decr key
Long decrement(K key);
redisTemplate.opsForValue().decrement("key");
给指定的key自增指定整数值,类似incrby key increment
Long increment(K key, long delta);
redisTemplate.opsForValue().increment("key",3);
给指定的key自减指定整数值,类似decrby key increment
Long decrement(K key, long delta);
redisTemplate.opsForValue().decrement("key",3);
给指定的key自减指定小数值,类似incrbyfloat key increment
Double increment(K key, double delta);
redisTemplate.opsForValue().increment("key",3.3);
在偏移值设置位,类似于setbit key offset value
Boolean setBit(K key, long offset, boolean value);
redisTemplate.opsForValue().setBit("key",100,true);
获取偏移值的位,类似于setbit key offset value
Boolean getBit(K key, long offset);
redisTemplate.opsForValue().getBit("key",100);
目前不清楚,敬请期待
在指定的key后面追加字符串,类似于append key value
Integer append(K key, String value);
redisTemplate.opsForValue().append("key","value");
获得一个key的值的长度,类似strlen key
Long size(K key);
redisTemplate.opsForValue().size("key");
获得key的值在start-stop的内容,类似getrange key start stop
String get(K key, long start, long end);
redisTemplate.opsForValue().get("key",0,5);
将索引为offset的地方地方为指定的字符串,类似于setrange key offset value
void set(K key, V value, long offset);
key:键名
value:需要替换的内容
offset:指定索引
redisTemplate.opsForValue().set("key","value",0);