一、创建 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.XXspring.data.redis.port=6379# 在腾讯云分布式缓存数据库控制台的账号管理页面,可获取账号密码,默认账号,则直接指定密码即可;若自定义账号,则配置为账号名@密码。spring.data.redis.password=XXXXXX# 可选配置# 指定具体的数据库名spring.data.redis.database=X# 指定客户端超时时长,单位为:msspring.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;@Componentpublic 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); }}