Redis和springboot 整合redisUtil类的示例代码

整合Redis与SpringBoot,提供一个RedisUtil工具类示例代码,简化Redis操作,提高开发效率。

SpringBoot整合Redis:自定义RedisUtil工具类实现数据操作

在SpringBoot项目中,整合Redis是一个常见的操作,通过SpringBoot提供的spring-boot-starter-data-redis依赖,我们可以很方便地操作Redis数据库,在实际开发过程中,我们通常会遇到一些复杂的业务场景,需要自定义一些Redis操作方法,本文将介绍如何创建一个RedisUtil工具类,以便在项目中更便捷地使用Redis。

Redis和springboot 整合redisUtil类的示例代码

整合Redis

1、添加依赖

在项目的pom.xml文件中添加spring-boot-starter-data-redis依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、配置Redis

application.propertiesapplication.yml文件中配置Redis服务器的相关信息:

Redis和springboot 整合redisUtil类的示例代码

Redis服务器地址
spring.redis.host=localhost
Redis服务器端口
spring.redis.port=6379
Redis密码(默认为空)
#spring.redis.password=root
连接超时时间(毫秒)
spring.redis.timeout=60000
Redis默认情况下有16个分片,这里配置具体使用的分片,默认是0
spring.redis.database=0

3、注入RedisTemplate

在项目中,我们可以通过注入RedisTemplate对象来操作Redis数据库:

@Autowired
private RedisTemplate<String, Object> redisTemplate;

RedisUtil工具类

下面我们创建一个RedisUtil工具类,封装一些常用的Redis操作方法。

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 RedisUtil {
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    // String类型操作
    public void set(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }
    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }
    public void delete(String key) {
        redisTemplate.delete(key);
    }
    // List类型操作
    public void leftPush(String key, Object value) {
        redisTemplate.opsForList().leftPush(key, value);
    }
    public Object leftPop(String key) {
        return redisTemplate.opsForList().leftPop(key);
    }
    public List<Object> range(String key, long start, long end) {
        return redisTemplate.opsForList().range(key, start, end);
    }
    // Set类型操作
    public void add(String key, Object... values) {
        redisTemplate.opsForSet().add(key, values);
    }
    public Set<Object> members(String key) {
        return redisTemplate.opsForSet().members(key);
    }
    // Hash类型操作
    public void put(String key, String hashKey, Object value) {
        redisTemplate.opsForHash().put(key, hashKey, value);
    }
    public Object getHashValue(String key, String hashKey) {
        return redisTemplate.opsForHash().get(key, hashKey);
    }
    public Map<Object, Object> entries(String key) {
        return redisTemplate.opsForHash().entries(key);
    }
    // ZSet类型操作
    public void add(String key, Object value, double score) {
        redisTemplate.opsForZSet().add(key, value, score);
    }
    public Set<Object> rangeByScore(String key, double min, double max) {
        return redisTemplate.opsForZSet().rangeByScore(key, min, max);
    }
}

使用RedisUtil工具类

在项目中,我们可以直接注入RedisUtil工具类,然后调用其方法进行Redis操作:

Redis和springboot 整合redisUtil类的示例代码

@Autowired
private RedisUtil redisUtil;
public void testRedis() {
    // 设置String类型
    redisUtil.set("name", "张三");
    // 获取String类型
    String name = (String) redisUtil.get("name");
    System.out.println("name: " + name);
    // 删除key
    redisUtil.delete("name");
    // List类型操作
    redisUtil.leftPush("list", "a");
    redisUtil.leftPush("list", "b");
    redisUtil.leftPush("list", "c");
    List<Object> list = redisUtil.range("list", 0, -1);
    System.out.println("list: " + list);
    // Set类型操作
    redisUtil.add("set", "a", "b", "c");
    Set<Object> set = redisUtil.members("set");
    System.out.println("set: " + set);
    // Hash类型操作
    redisUtil.put("hash", "name", "张三");
    redisUtil.put("hash", "age", 18);
    String hashName = (String) redisUtil.getHashValue("hash", "name");
    System.out.println("hashName: " + hashName);
    Map<Object, Object> hash = redisUtil.entries("hash");
    System.out.println("hash: " + hash);
    // ZSet类型操作
    redisUtil.add("zset", "a", 1);
    redisUtil.add("zset", "b", 2);
    redisUtil.add("zset", "c", 3);
    Set<Object> zset = redisUtil.rangeByScore("zset", 0, 2);
    System.out.println("zset: " + zset);
}

通过自定义RedisUtil工具类,我们可以更方便地在SpringBoot项目中操作Redis数据库,在实际开发过程中,我们可以根据业务需求,扩展RedisUtil工具类,封装更多实用的方法,提高开发效率,使用RedisUtil工具类还可以统一Redis操作,便于维护和优化。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/234980.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔
上一篇 2024-02-18 23:49
下一篇 2024-02-18 23:51

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入