快捷搜索:

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指定位置元素的值。

经验分享 程序员 职场和发展