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

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

成都创新互联凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了成都网站设计、成都网站建设、外贸网站建设服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。

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

整合Redis

1、添加依赖

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


    org.springframework.boot
    spring-boot-starter-data-redis

2、配置Redis

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

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 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 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 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 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 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 rangeByScore(String key, double min, double max) {
        return redisTemplate.opsForZSet().rangeByScore(key, min, max);
    }
}

使用RedisUtil工具类

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

@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 list = redisUtil.range("list", 0, -1);
    System.out.println("list: " + list);
    // Set类型操作
    redisUtil.add("set", "a", "b", "c");
    Set 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 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 zset = redisUtil.rangeByScore("zset", 0, 2);
    System.out.println("zset: " + zset);
}

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

文章标题:Redis和springboot整合redisUtil类的示例代码
标题网址:http://www.hantingmc.com/qtweb/news41/543841.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联