ValueOperations 是 RedisTemplate 提供的用于操作 Redis 缓存中值的接口,它定义了一系列可以使用的方法。以下是 ValueOperations 接口中的常用方法:
- void set(K key, V value)
: 将指定的 key-value 对写入缓存,如果 key 已存在,则覆盖原有值。
- Boolean setIfAbsent(K key, V value)
: 将指定的 key-value 对写入缓存,但只有在 key 不存在时才写入。如果 key 已存在,则不执行写入操作。
- void set(K key, V value, long timeout, TimeUnit unit)
: 将指定的 key-value 对写入缓存,并设置该键的过期时间。
例如:
set("key","value",1,TimeUnit.MINUTES);//设置一分钟的过期时间
- V get(K key)
: 根据指定的 key 从缓存中获取对应的值。
- Boolean delete(K key)
: 根据指定的 key 从缓存中删除对应的键值对。
- Long increment(K key, long delta)
: 给指定的 key 对应的值递增指定的 delta 值。
- Double increment(K key, double delta)
: 给指定的 key 对应的值递增指定的 delta 值(浮点数)。
- Boolean expire(K key, long timeout, TimeUnit unit)
: 设置指定的 key 的过期时间。
- Boolean hasKey(K key)
: 判断指定的 key 是否存在于缓存中。
- V getAndSet(K key, V value)
: 将指定的 key-value 对写入缓存,并返回之前的值。
- List multiGet(Collection keys)
: 根据指定的多个 key,从缓存中批量获取对应的值。
- void multiSet(Map map)
: 批量将多个 key-value 对写入缓存。
- Boolean setIfPresent(K key, V value)
: 如果指定的 key 存在于缓存中,则将 key-value 对写入缓存。
- Long size()
: 获取缓存中键值对的数量。
附录(redis中的原生指令)
set <key><value>添加键值对
get <key>查询对应键值
append <key><value>将给定的<value> 追加到原值的末尾
strlen <key>获得值的长度
setnx <key><value>只有在 key 不存在时 设置 key 的值
incr <key>
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1
decr <key>
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1
incrby / decrby <key><步长>将 key 中储存的数字值增减。自定义步长。
mset <key1><value1><key2><value2> .....
同时设置一个或多个 key-value对
mget <key1><key2><key3> .....
同时获取一个或多个 value
msetnx <key1><value1><key2><value2> .....
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
原子性,有一个失败则都失败
getrange <key><起始位置><结束位置>
获得值的范围,类似java中的substring,前包,后包
setrange <key><起始位置><value>
用 <value> 覆写<key>所储存的字符串值,从<起始位置>开始(索引从0开始)。
setex <key><过期时间><value>
设置键值的同时,设置过期时间,单位秒。
getset <key><value>
以新换旧,设置了新值同时获得旧值。