温故才能知新(复习一下)
昨天我们开始学习RedisTemplate中操作众多的特定数据类型的一些方法,上一篇文章更是将操作String数据类型,其中的boundValueOps和opsForValue等两个方法,大家还有些印象吗?
今天我们要来看一下这两个方法返回的对象都有着哪些操作Redis的方法,一起来看看吧。
开始学习,RedisTemplate系列方法之战
boundValueOps和opsForValue两个方法涉及到的方法大致是相同的,所以就不再分两个模块来写了。
整体上我们还是主要来看opsForValue方法中的一些功能。
set(K var1, V var2)
功能描述:添加相应的键值对,指定相应的key值和value值。这个方法太常见了,在boundValueOps方法中也是的相应的set方法的,大家可以自行去尝试一番。
示例代码:
/** * 普通缓存放入 * * @param key 键 * @param value 值 * @return true成功 false失败 */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
常用程度:※※※※※(太常用了,妥妥的一个必备知识点)
源码截图:
set(K var1, V var2, long var3, TimeUnit var5)
功能描述:这个方法和上面的方法是一样的,只不过是指定了过期时间。
当然使用上面的方法之后再设置相关的过期时间也是可以的。
setIfAbsent(K var1, V var2)
功能描述:此方法的返回值是一个布尔类型的值,其功能也是添加相应的值,只不过在其中做了一个判断,那就是如果将要添加的key值已存在,则不再添加,直接返回fasle;如果不存在,则正常添加,返回true。
常用程度:※※※
setIfAbsent(K var1, V var2, long var3, TimeUnit var5)
功能描述:此方法与上面的方法一致,加入了过期时间的设置。
setIfAbsent(K key, V value, Duration timeout)
功能描述:此方法在原来的基础上加入了过期日期的设置。
get(Object var1)
功能描述:获取相应的数据值,通过传入参数,一般都是传入字符串的key值。也是必备的一个知识点。在boundValueOps方法中也是有着这个功能的。
示例代码:
/** * 普通缓存获取 * * @param key 键 * @return 值 */ public Object get(String key) { return key == null ? null : redisTemplate.opsForValue().get(key); }
常用程度:※※※※※
increment(K var1, long var2)
功能描述:此方法提供了可以将对应key的value值进行自增处理,通过传入的参数决定增加多少。
示例代码:
/** * 递增 * * @param key 键 * @param delta 要增加几(大于0) */ public long incr(String key, long delta) { if (delta < 0) { throw new RuntimeException("递增因子必须大于0"); } return redisTemplate.opsForValue().increment(key, delta); }
常用程度:※※※※
小结
我们今天学习了opsForValue返回的类中可以操作Redis的一系列方法,大家是否知道还有什么比较常用的方法呢?