RedisTemplate常用集合使用说明
时间: 2025-01-07 07:07:57 浏览: 7
### RedisTemplate 中常用集合的操作
#### 设置和获取键值对
通过 `opsForValue()` 方法可以执行针对字符串类型的命令。这不仅限于简单的键值存储,还可以进行增量操作和其他复杂指令。
```java
// 存储单个键值对
redisTemplate.opsForValue().set("key", "value");
// 获取指定键对应的值
String value = (String) redisTemplate.opsForValue().get("key");
```
#### 列表(List) 操作
`opsForList()` 提供了一系列的方法来处理 Redis 中的 List 数据结构。这些方法允许向列表两端添加元素、移除特定数量的匹配项以及按索引访问成员等。
```java
// 向列表左侧插入元素
redisTemplate.opsForList().leftPush("mylist", "item1");
// 从右侧弹出并返回第一个元素
Object item = redisTemplate.opsForList().rightPop("mylist");
```
#### 集合(Set) 操作
对于无序且不允许重复元素的数据集来说,Set 是理想的选择。可以通过 `opsForSet()` 来实现 Sets 类型的各种功能,比如添加新成员、删除现有条目或是查询两个 Set 的交集/差集等[^1]。
```java
// 添加到集合中
redisTemplate.opsForSet().add("users", "alice", "bob");
// 移除某个成员
redisTemplate.opsForSet().remove("users", "alice");
// 计算两个集合之间的差异
Set<Object> diff = redisTemplate.opsForSet().difference("groupA", "groupB");
```
#### 有序集合(Sorted Set/ZSET) 操作
当需要维护带权重(分数)的关系时 Ordered Set 或者说 ZSET 就派上用场了。借助 `opsForZSet()`, 可以轻松完成诸如增加带有评分的新记录、更新已有项目的分值乃至检索排名区间内的项目等功能[^2]。
```java
// 插入或更新具有给定得分的成员
redisTemplate.opsForZSet().add("leaderboard", "player1", 90);
// 查询某范围内的所有成员及其对应分数
Set<Tuple> topPlayers = redisTemplate.opsForZSet().rangeWithScores("leaderboard", 0, 2);
```
阅读全文