关于Spring中Redis的核心工具RedisTemplate的常见方法

1.RedisTemplate的介绍

RedisTemplate 是 Spring Data Redis 提供的核心工具类,用于简化 Redis 的交互操作。它封装了底层连接管理、数据序列化、异常处理等细节,支持多种数据结构的操作,并与 Spring 生态无缝集成.

2.操作不同数据结构时的用法

1.字符串(String)

// 写入
redisTemplate.opsForValue().set("user:1", "Alice");
redisTemplate.opsForValue().set("counter", 100, Duration.ofMinutes(10)); // 设置过期时间

// 读取
String value = (String) redisTemplate.opsForValue().get("user:1");
Integer counter = (Integer) redisTemplate.opsForValue().get("counter");

2.哈希(Hash)

// 写入单个字段
redisTemplate.opsForHash().put("user:1000", "name", "Bob");
redisTemplate.opsForHash().put("user:1000", "age", 25);

// 批量写入
Map<String, Object> userData = new HashMap<>();
userData.put("email", "bob@example.com");
userData.put("city", "New York");
redisTemplate.opsForHash().putAll("user:1000", userData);

// 读取字段
String name = (String) redisTemplate.opsForHash().get("user:1000", "name");
Map<Object, Object> allFields = redisTemplate.opsForHash().entries("user:1000");

3.列表(List)

// 左侧插入元素
redisTemplate.opsForList().leftPush("tasks", "task1");
redisTemplate.opsForList().leftPushAll("tasks", "task2", "task3");

// 右侧弹出元素(队列消费)
String task = (String) redisTemplate.opsForList().rightPop("tasks");

// 获取范围元素
List<Object> firstTwoTasks = redisTemplate.opsForList().range("tasks", 0, 1);

4.集合(Set)

// 添加元素
redisTemplate.opsForSet().add("tags", "java", "redis", "spring");

// 判断元素是否存在
boolean exists = redisTemplate.opsForSet().isMember("tags", "redis");

// 获取所有成员
Set<Object> tags = redisTemplate.opsForSet().members("tags");

5.有序集合(Sorted set)

// 添加元素(带分数)
redisTemplate.opsForZSet().add("leaderboard", "PlayerA", 100);
redisTemplate.opsForZSet().add("leaderboard", "PlayerB", 200);

// 按分数范围查询
Set<Object> topPlayers = redisTemplate.opsForZSet().reverseRange("leaderboard", 0, 2);
posted @ 2025-03-23 08:35  留梦&  阅读(208)  评论(0)    收藏  举报