tencent cloud

腾讯云分布式缓存数据库(兼容 Redis)

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
应用场景
存储引擎
产品系列
产品版本
规格与性能
读写分离
多可用区部署
地域和可用区
名词解释
购买指南
计费概述
定价中心
购买实例
续费说明(包年包月)
退费说明(包年包月)
欠费说明
按量转包年包月
快速入门
快速创建实例
连接 Redis 实例
操作指南
操作总览
连接数据库实例
管理实例
升级实例
管理节点(Redis/ValKey 版)
管理多可用区
备份与恢复
账号管理
参数配置
慢查询
访问管理
网络与安全
监控与告警
事件管理(Redis/ValKey 版)
数据迁移
Redis 版全球复制
数据库审计
诊断优化
Sentinel 模式
开发准则
命名规则
基本使用准则
Key 与 Value 设计原则
命令使用准则
客户端程序设计准则
连接池配置
命令参考
命令参考概览
Redis 版与 Valkey 版命令兼容性
大版本命令使用差异
Proxy 架构与直连模式的使用差异
命令更多操作(Redis/Valkey 版)
Memcached 版命令兼容性
实践教程
基于 Spring Boot 搭建 Redis 客户端监控
Redis 客户端连接配置策略与实践
集群架构全局 SCAN 使用指南
实例安全下线
热 Key 与 大 key
可用区迁移方案
故障处理
连接异常
Redisson 客户端超时重连异常分析及解决方案
性能排查与调优
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Parameter Management APIs
Other APIs
Backup and Restoration APIs
Region APIs
Monitoring and Management APIs
Log APIs
Data Types
Error Codes
常见问题
使用常见问题
连接登录问题
购买相关问题
相关协议
服务等级协议
Terms of Service
词汇表
联系我们

配置 Spring Data Redis 组件

PDF
聚焦模式
字号
最后更新时间: 2026-03-17 18:23:47
Spring Data Redis 是 Spring Data 项目下的一个子项目,旨在为 Redis 提供易用且高效的操作支持。它为 Spring 应用程序与 Redis 数据库之间的交互提供了一个抽象层,简化了 Redis 数据库的访问和操作,统一了数据访问的方式。通过 Spring Data Redis,开发者可以使用熟悉的 Spring 风格来操作 Redis。

创建 Spring Boot 项目

如下使用 IntelliJ IDEA 创建项目 RedisMonitor,类型选择 Maven。


配置 Spring Data Redis 组件依赖

在项目的 pom.xml 中加入 Spring Data Redis 组件依赖,如下所示。
说明:
Spring Boot 在检测到 spring-boot-starter-data-redis 依赖后,会自动创建一个 RedisTemplate 的实例(Bean),并将其注册到 Spring 容器中。RedisTemplate 是 Spring Data Redis 提供的一个高级抽象,用于简化 Redis 的操作。它封装了 Redis 的底层命令,提供了更方便、更安全的方式来操作 Redis 数据库。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

配置 Redis 信息

在配置文件 application.properties 中配置 Redis 的 host、port 以及 password 参数,也可根据需求,选择性配置数据库等信息。如下所示。
# 必须配置
# 在腾讯云分布式缓存数据库控制台的实例详情页面的网络信息区域获取内网IPv4地址与端口
spring.data.redis.host=172.27.XX.XX
spring.data.redis.port=6379
# 在腾讯云分布式缓存数据库控制台的账号管理页面,可获取账号密码,默认账号,则直接指定密码即可;若自定义账号,则配置为账号名@密码。
spring.data.redis.password=XXXXXX
# 可选配置
# 指定具体的数据库名
spring.data.redis.database=X
# 指定客户端超时时长,单位为:ms
spring.data.redis.timeout=XXXX
# 指定 Spring Boot 客户端类型
spring.data.redis.client-type=lettuce

使用 RedisTemplate 实现 Redis 接口类

基于 RedisTemplate 实现一个工具类 RedisInterface.java,封装了常用的 Redis 操作命令。
package com.example.redismonitor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;
import java.util.Set;
@Component
public class RedisInterface {
@Autowired
private RedisTemplate redisTemplate;

//- - - - - - - - - - - - - - - - - - - - - string - - - - - - - - - - - - - - - - - - - -
public String get(String key) {
return (String) redisTemplate.opsForValue().get(key);
}

public void set(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}

//- - - - - - - - - - - - - - - - - - - - - set - - - - - - - - - - - - - - - - - - - -
public Long sadd(String key, Object... values) {
return redisTemplate.opsForSet().add(key, values);
}

public Long srem(String key, Object... values) {
return redisTemplate.opsForSet().remove(key, values);
}

public Set<Object> smembers(String key) {
return redisTemplate.opsForSet().members(key);
}

public Boolean sismember(String key, Object value) {
return redisTemplate.opsForSet().isMember(key, value);
}

//- - - - - - - - - - - - - - - - - - - - - hash - - - - - - - - - - - - - - - - - - - -
public void hset(String key, String field, Object value) {
redisTemplate.opsForHash().put(key, field, value);
}

public Object hget(String key, String field) {
return redisTemplate.opsForHash().get(key, field);
}

public Map<Object, Object> hgetAll(String key) {
return redisTemplate.opsForHash().entries(key);
}

public Long hdel(String key, Object... fields) {
return redisTemplate.opsForHash().delete(key, fields);
}

//- - - - - - - - - - - - - - - - - - - - - list - - - - - - - - - - - - - - - - - - - -
public void lpush(String key, Object value) {
redisTemplate.opsForList().leftPush(key, value);
}

public void rpush(String key, Object value) {
redisTemplate.opsForList().rightPush(key, value);
}

public String lpop(String key) {
return redisTemplate.opsForList().leftPop(key).toString();
}

public String rpop(String key) {
return redisTemplate.opsForList().rightPop(key).toString();
}

public List<Object> range(String key, long start, long end) {
return redisTemplate.opsForList().range(key, start, end);
}

//- - - - - - - - - - - - - - - - - - - - - zset - - - - - - - - - - - - - - - - - - - -
public Boolean zadd(String key, Object value, double score) {
return redisTemplate.opsForZSet().add(key, value, score);
}

public Set<Object> zrangeByScore(String key, double min, double max) {
return redisTemplate.opsForZSet().rangeByScore(key, min, max);
}

public Long zrank(String key, Object value) {
return redisTemplate.opsForZSet().rank(key, value);
}

public Long zrem(String key, Object... values) {
return redisTemplate.opsForZSet().remove(key, values);
}
}

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈