`
357029540
  • 浏览: 737182 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

RedisTemplate常用集合使用说明-opsForList(三)

阅读更多

         基础配置介绍已经在前面的《RedisTemplate常用集合使用说明(一)》中已经介绍了,现在我们直接介绍opsForList()方法的使用:

     1、leftPush(K key, V value)

 

  在变量左边添加元素值。

 

redisTemplate.opsForList().leftPush("list","a");
redisTemplate.opsForList().leftPush("list","b");
redisTemplate.opsForList().leftPush("list","c");

 

     2、index(K key, long index)

 

  获取集合指定位置的值。

 

String listValue = redisTemplate.opsForList().index("list",1) + "";
System.out.println("通过index(K key, long index)方法获取指定位置的值:" + listValue);

 

     3、range(K key, long start, long end)

 

获取指定区间的值。

 

List<Object> list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过range(K key, long start, long end)方法获取指定范围的集合值:"+list);

    4、leftPush(K key, V pivot, V value)

 

     把最后一个参数值放到指定集合的第一个出现中间参数的前面,如果中间参数值存在的话。

 

redisTemplate.opsForList().leftPush("list","a","n");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过leftPush(K key, V pivot, V value)方法把值放到指定参数值前面:" + list);

 

     5、leftPushAll(K key, V... values)

 

  向左边批量添加参数元素。

 

redisTemplate.opsForList().leftPushAll("list","w","x","y");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过leftPushAll(K key, V... values)方法批量添加元素:" + list);

 

     6、leftPushAll(K key, Collection<V> values)

 

   以集合的方式向左边批量添加元素。

 

List newList = new ArrayList();
newList.add("o");
newList.add("p");
newList.add("q");
redisTemplate.opsForList().leftPushAll("list",newList);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过leftPushAll(K key, Collection<V> values)方法以集合的方式批量添加元素:" + list);

 

     7、leftPushIfPresent(K key, V value)

 

  如果存在集合则添加元素。

 

redisTemplate.opsForList().leftPushIfPresent("presentList","o");
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.println("通过leftPushIfPresent(K key, V value)方法向已存在的集合添加元素:" + list);

 

     8、rightPush(K key, V value)

 

   向集合最右边添加元素。

 

redisTemplate.opsForList().rightPush("list","w");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过rightPush(K key, V value)方法向最右边添加元素:" + list);

 

      9、rightPush(K key, V pivot, V value)

 

   向集合中第一次出现第二个参数变量元素的右边添加第三个参数变量的元素值。

 

redisTemplate.opsForList().rightPush("list","w","r");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过rightPush(K key, V pivot, V value)方法向最右边添加元素:" + list);

 

     10、rightPushAll(K key, V... values)

 

   向右边批量添加元素。

 

redisTemplate.opsForList().rightPushAll("list","j","k");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过rightPushAll(K key, V... values)方法向最右边批量添加元素:" + list);

 

    11、rightPushAll(K key, Collection<V> values)

 

   以集合方式向右边添加元素。

 

newList.clear();
newList.add("g");
newList.add("h");
redisTemplate.opsForList().rightPushAll("list",newList);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过rightPushAll(K key, Collection<V> values)方法向最右边以集合方式批量添加元素:" + list);

 

    12、rightPushIfPresent(K key, V value)

 

  向已存在的集合中添加元素。

redisTemplate.opsForList().rightPushIfPresent("presentList","d");
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.println("通过rightPushIfPresent(K key, V value)方法已存在的集合向最右边添加元素:" + list);

    13、size(K key)

 

获取集合长度。

 

long listLength = redisTemplate.opsForList().size("list");
System.out.println("通过size(K key)方法获取集合list的长度为:" + listLength);

     14、leftPop(K key)

 

       移除集合中的左边第一个元素。

 

Object popValue = redisTemplate.opsForList().leftPop("list");
System.out.print("通过leftPop(K key)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println(",剩余的元素是:" + list);

 

     15、leftPop(K key, long timeout, TimeUnit unit)

 

   移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

 

popValue = redisTemplate.opsForList().leftPop("presentList",1, TimeUnit.SECONDS);
System.out.print("通过leftPop(K key, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.println(",剩余的元素是:" + list);

     16、rightPop(K key)

        移除集合中右边的元素。

       

popValue = redisTemplate.opsForList().rightPop("list");
System.out.print("通过rightPop(K key)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println(",剩余的元素是:" + list);

 

      17rightPop(K key, long timeout, TimeUnit unit)

 

   移除集合中右边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

 

popValue = redisTemplate.opsForList().rightPop("presentList",1, TimeUnit.SECONDS);
System.out.print("通过rightPop(K key, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.println(",剩余的元素是:" + list);

     18rightPopAndLeftPush(K sourceKey, K destinationKey)

 

  移除集合中右边的元素,同时在左边加入一个元素。

popValue = redisTemplate.opsForList().rightPopAndLeftPush("list","12");
System.out.print("通过rightPopAndLeftPush(K sourceKey, K destinationKey)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println(",剩余的元素是:" + list);

     19rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)

  移除集合中右边的元素在等待的时间里,同时在左边添加元素,如果超过等待的时间仍没有元素则退出。

popValue = redisTemplate.opsForList().rightPopAndLeftPush("presentList","13",1,TimeUnit.SECONDS);
System.out.println("通过rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)方法移除的元素是:" + popValue);
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.print(",剩余的元素是:" + list);

  20set(K key, long index, V value)

  在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标+n则会报错。

redisTemplate.opsForList().set("presentList",3,"15");
list =  redisTemplate.opsForList().range("presentList",0,-1);
System.out.print("通过set(K key, long index, V value)方法在指定位置添加元素后:" + list);

  21remove(K key, long count, Object value)

  从存储在键中的列表中删除等于值的元素的第一个计数事件。count> 0:删除等于从左到右移动的值的第一个元素;count< 0:删除等于从右到左移动的值的第一个元素;count = 0:删除等于value的所有元素。

long removeCount = redisTemplate.opsForList().remove("list",0,"w");
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过remove(K key, long count, Object value)方法移除元素数量:" + removeCount);
System.out.println(",剩余的元素:" + list);

      22trim(K key, long start, long end)

  截取集合元素长度,保留长度内的数据。

redisTemplate.opsForList().trim("list",0,5);
list =  redisTemplate.opsForList().range("list",0,-1);
System.out.println("通过trim(K key, long start, long end)方法截取后剩余元素:" + list);

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    RedisTemplate常用集合使用说明-opsForZSet(六)

    这篇博客"RedisTemplate常用集合使用说明-opsForZSet(六)"可能详细介绍了如何使用RedisTemplate操作有序集合。 首先,有序集合的操作主要包括添加元素、删除元素、获取范围、更新分数等。RedisTemplate的opsForZSet...

    springboot RedisTemplate 对string-value操作

    spring boot redis RedisTemplate和ValueOperations对 string-value的操作 参照redisdoc文档的方法进行 打造 http://redisdoc.com/ 与文档中string对应 写出通用接口 与实现类 完整demo连接 //配置缓存 和序列化...

    RedisTemplate-redis-优雅玩法

    RedisTemplate不仅仅支持简单的键值对操作,还可以处理集合、哈希、有序集合等多种数据结构。例如,我们可以用它来操作List: ```java public void addToList(String listKey, User user) { redisTemplate....

    RedisTemplate-JDBCTemplate.zip

    使用`RedisTemplate`的主要步骤如下: 1. 配置Redis连接工厂,如`JedisConnectionFactory`,并设置相应的连接参数。 2. 在Spring配置中声明`RedisTemplate`,并指定键值序列化器(如StringRedisSerializer)和其他...

    RedisTemplate 的基本使用手把手教源码

    RedisTemplate 的基本使用手把手教源码

    通过RedisTemplate连接多个Redis过程解析

    本文主要介绍了通过RedisTemplate连接多个Redis过程解析,详细介绍了使用SpringBoot提供的spring-boot-starter-data-redis工具包连接多个Redis数据库的过程。 首先,在集群环境下连接多个Redis数据库是非常正常的...

    SpringBoot使用注解实现 Redis 数据库的切换.zip

    创建一个名为`RedisConfig`的配置类,使用`@Configuration`和`@Bean`注解来定义多个`RedisTemplate`: ```java @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String ...

    redisTemplate封装成redisUtils和分布式锁实现

    RedisTemplate是Spring Data Redis模块中的一个核心组件,用于在Java应用中操作Redis数据库。它提供了一种面向对象的方式来执行各种Redis命令,简化了与Redis的数据交互。本篇将深入探讨如何将RedisTemplate封装成...

    redistemplate

    标题中的"redistemplate"可能指的是一个基于Redis的模板或者框架,它简化了在应用程序中使用Redis客户端的操作。Redis是一个高性能的键值数据库,常用于数据缓存、消息队列和分布式计算等领域。这个模板可能提供了...

    RedisTemplate具体操作

    此外,还有`opsForList()`、`opsForSet()`、`opsForZSet()`分别对应列表、集合和有序集合的操作。 在多线程环境中,使用RedisTemplate时需要注意线程安全问题。由于Redis本身是单线程模型,所以并发访问不会造成...

    分布式缓存RedisTemplate取不到数据的问题(csdn)————程序.pdf

    应使用相应的方法,如 `.opsForList().get()`。 5. **序列化与反序列化**: RedisTemplate 默认使用 JdkSerializationRedisSerializer 进行序列化和反序列化,但这种方式的效率并不高,且可能会出现兼容性问题。你...

    spring整合redis以及使用RedisTemplate的方法

    `RedisTemplate`提供了丰富的API,包括`opsForHash()`, `opsForList()`, `opsForSet()` 和 `opsForZSet()` 等,分别对应Redis的哈希、列表、集合和有序集合操作。这使得在Spring应用中操作Redis变得非常方便。 总之...

    java使用 redis-sentinel

    在使用Redis Sentinel时,我们需要自定义`RedisTemplate`,设置Sentinel的配置,以便正确连接到哨兵系统。这通常涉及到以下步骤: 1. **创建RedisSentinelConfig**: 这个配置类将包含Sentinel的主机和端口信息,...

    Redis之RedisTemplate使用(RedisTemplate工具类)

    Redis之RedisTemplate使用(RedisTemplate工具类) String类型相关操作 List类型相关操作 Set类型相关操作 Map类型相关操作 ZSet类型相关操作

    redisTemplate示例代码

    RedisTemplate提供了丰富的API,如`opsForValue()`、`opsForHash()`、`opsForList()`、`opsForSet()`和`opsForZSet()`,分别对应Redis中的五大数据结构:字符串、哈希、列表、集合和有序集合。以下是一些常见的操作...

    RedisTemplate redisTemplate(RedisConnectionFactory factory)

    RedisTemplate, Object&gt; redisTemplate(RedisConnectionFactory factory)自定义RedisTemplate配置类,是个固定模板,可以拿来直接使用,可以直接传入Key:String和Value:Object这种类型,注意Object类需要实现序列化...

    pom.xml+redisTemplate配置

    包含SSM+redisTemplate+shiro

    Redis+RedisTemplate分布式锁

    Redis+RedisTemplate分布式锁

    RedisTemplate 用法

    详细介绍RedisTemplate5种数据结构,并且有每种不同数据结构的用法的例子

Global site tag (gtag.js) - Google Analytics