springboot,配置redis,并且写一个工具类,包括增删改查,设置过期时间

好的,下面是在 Spring Boot 中配置 Redis 并编写一个工具类实现增删改查和设置过期时间的操作的步骤:

  1. 添加 Redis 依赖:在 Maven 或 Gradle 构建文件中添加 Redis 相关的依赖项。例如,对于 Maven,你可以在 pom.xml 文件中添加以下依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置 Redis 连接信息:在 application.properties 或 application.yml 文件中,配置 Redis 的连接信息。以下是一个示例的 application.properties 配置:
spring.redis.host=your-redis-host
spring.redis.port=your-redis-port
spring.redis.password=your-redis-password (如果有密码的话)

或者,以下是一个示例的 application.yml 配置:

spring:
  redis:
    host: your-redis-host
    port: your-redis-port
    password: your-redis-password (如果有密码的话)
  1. 创建 RedisTemplate Bean:在你的 Spring Boot 应用程序中,创建一个 RedisTemplate Bean,用于与 Redis 进行交互。你可以在一个配置类中完成此操作,例如:
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        return redisTemplate;
    }

}

这里使用了 GenericJackson2JsonRedisSerializer 作为值的序列化器,它可以将对象序列化为 JSON 字符串。你也可以根据需求选择其他序列化器。

  1. 编写 Redis 工具类:在你的应用程序中创建一个 Redis 工具类,用于实现 Redis 的增删改查和设置过期时间的操作。以下是一个示例的 Redis 工具类:
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

@Component
public class RedisUtils {

    private final RedisTemplate<String, Object> redisTemplate;

    public RedisUtils(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

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

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

    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }

    public void delete(String key) {
        redisTemplate.delete(key);
    }

    // 其他操作方法...

}

这个 Redis 工具类包括了 setgetdelete 方法,分别用于设置键值对、获取键对应的值、删除键值对。此外,还包括了带有过期时间的 set 方法,用于设置带有过期时间的键值对。

  1. 使用 RedisUtils:在你的应用程序中注入 RedisUtils Bean,并使用它与 Redis 进行交互。例如,你可以在一个服务类中使用 RedisUtils 进行操作:
 
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

@Service
public class UserService {

    private final RedisUtils redisUtils;

    public UserService(RedisUtils redisUtils) {
        this.redisUtils = redisUtils;
    }

    public void setUser(String id, User user) {
        redisUtils.set(id, user);
    }

    public User getUser(String id) {
        return (User) redisUtils.get(id);
    }

    public void deleteUser(String id) {
        redisUtils.delete(id);
    }

    public void setUserWithExpire(String id, User user, long timeout, TimeUnit timeUnit) {
        redisUtils.set(id, user, timeout, timeUnit);
    }

    // 其他操作方法...

}

现在,你可以在其他组件中注入 UserService 并使用它来操作 Redis 数据库。例如,你可以使用 setUser 方法将用户对象存储到 Redis 中,使用 getUser 方法从 Redis 中获取用户对象,使用 deleteUser 方法删除 Redis 中的用户对象,使用 setUserWithExpire 方法设置带有过期时间的用户对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值