Redis的StringRedisTemplate在SpringBoot中的使用完全整理之opsForList
opsForList
leftPush(String k,String v)、rightPush(String k,String v)
向列表k添加元素v。右边亦同。
leftPush(String k,String v,String v2)、rightPush(String k,String v,String v2)
向列表k中,如果元素v存在的话,在元素为v的左边插入元素v2。右边亦同。
leftPushAll(String k,String... vs)、rightPushAll(String k,String... vs)
向列表k中从左批量添加元素。右边亦同。
leftPushAll(String k,Collection<String> collection)、rightPushAll(String k,Collection<String> collection)
以集合的形式从左边向列表k中添加元素。右边亦同。
leftPushIfAbsent(String k,String v)、rightPushIfAbsent(String k,String v)
如果列表k中元素v不存在,从左添加元素,存在不作任何操作。右边亦同。
leftPop(String k)、leftPop(String k,long l,TimeUtil timeUtil)、rightPop(String k)、rightPop(String k,long l,TimeUtil timeUtil)
两个方法都是移除列表k最左边元素,第二个方法会有一个等待时间,如果在设置时间内任然没有元素则不做操作。右边亦同。
rightPopAndLeftPush(String k,String k1)、rightPopAndLeftPush(String k,String k1,long l,TimeUtil timeUtil)
从列表k右边取出一个元素,把它插入到列表k1的左边。第二个方法则是有一个等待时间,在这个时间内取出元素,如果超过了这个时间就不做操作。这两个方法都会返回被取出的元素的值。
eg:
redisTemplate.opsForList().rightPopAndLeftPush("listTest", "listTest2",100,TimeUtil.SECONDS);
remove(String k,long cont,Object o)
删除列表k中的指定元素o,当cont>0时,删除从左到右的cont个元素;当cont=0时,删除所有值为o的元素;当cont<0时,删除从右向左的cont个元素。
range(String k,long s,long e)
返回从s到e的列表k元素的集合,返回是一个List<String>。
set(String k,long l,String v)
在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标则会报错。
trim(String k,long s,long e)
截取列表k,保留从s到e的数据。
index(String k,long l)
获取列表k指定位置元素的值。
上一篇:
多线程四大经典案例
下一篇:
L2-1 插松枝 (有备注详细过程)