Spring模版类 StringRedisTemplate:opsForList().range(CACHE_SHOP_TYPE_KEY, 0, -1);
在Spring框架中,StringRedisTemplate是一个专门用于操作Redis字符串数据的模板类。它提供了多种方法来处理Redis中的数据结构,包括列表(List)、集合(Set)、哈希(Hash)等。使用了opsForList().range方法来获取Redis列表中的元素。
List<String> shopTypes =
stringRedisTemplate.opsForList().range(CACHE_SHOP_TYPE_KEY, 0, -1);
上述代码的作用是从Redis中键名为CACHE_SHOP_TYPE_KEY的列表中,获取从索引0到索引-1范围内的所有元素。在Redis中,列表的索引可以是正数,也可以是负数:
- 正数索引:从0开始,表示从列表的左端(即头部)开始计数。
- 负数索引:从-1开始,表示从列表的右端(即尾部)开始计数。
因此,range(0, -1)表示获取列表中的所有元素。这是因为索引0代表列表的第一个元素,
索引-1代表列表的最后一个元素。这种用法在实际开发中非常常见,用于获取Redis列表中的全部数据。
需要注意的是,opsForList().range方法的start和end参数需要遵循一定的规则:
- 索引顺序:
start索引必须小于或等于end索引,否则会返回空列表。 - 索引范围:即使
start小于0或end大于列表的最大索引,Redis也会根据实际情况返回有效的元素,而不会报错。
例如,假设列表包含以下元素:["a", "b", "c", "d"],则:
range(1, 2)将返回["b", "c"]range(-3, -1)将返回["b", "c", "d"]range(0, -1)将返回["a", "b", "c", "d"]
通过StringRedisTemplate的opsForList().range方法,可以方便地获取Redis列表中的指定范围的元素。

浙公网安备 33010602011771号