SpringBoot整合Redis,通过程序将对象写入redis

1、环境搭建

创建一个SpringBoot项目,普通的web项目就可以了,我这里使用的是start.aliyun

引入依赖:

(1)老演员了不多说。

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

(2)整合redis

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

(3) 实体类用到了@Data注解

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

(4)将对象转为json存入redis,取出来时将json转为对象

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.30</version>
</dependency>

 2、代码编写

(1)在Application启动类的同级目录下创建对应的包

 (2)写redis工具类

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;

@Component
public class RedisUtils {
    /**
     * 获取redis模板
     */
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 存入String类型
     * @param key
     * @param value
     * @param timeOut
     */
    public void setString(String key, String value, Long timeOut){
        stringRedisTemplate.opsForValue().set(key, value);
        if (timeOut != null){
            //设置Redis的key的有效期
            stringRedisTemplate.expire(key, timeOut, TimeUnit.SECONDS);
        }
    }
    /**
     * 获取String类型
     * @param key
     * @return
     */
    public String getString(String key){
        return stringRedisTemplate.opsForValue().get(key);
    }
}

实体类:

import lombok.Data;

@Data
public class User {
    private String name;
    private Integer age;
}

控制层:

import com.alibaba.fastjson.JSONObject;
import com.example.redis.redistudy.pojo.User;
import com.example.redis.redistudy.util.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    @Autowired
    private RedisUtils redisUtils;

    @GetMapping("/addUser")
    public String addUser(){
        User user = new User();
        user.setName("zhangsan");
        user.setAge(18);
        String userString = JSONObject.toJSONString(user);
        redisUtils.setString("userString",userString, null);
        return "存入成功";
    }

    @GetMapping("/getUser")
    public User getUser(String key){
        String userString= redisUtils.getString(key);
        User user = JSONObject.parseObject(userString, User.class);
        return user;
    }
}

(3)yml文件配置

spring:
  redis:
    host: 服务器公网ip
    password: root   //密码
    port: 6379       //端口号
    database: 0      //指定存入哪一个库

 3、测试

        启动程序 ,访问地址:http://localhost:8080/addUser   

 看一下redis,存入成功

 

再获取一下,获取成功 

地址:http://localhost:8080/getUser?key=userString

完事儿~ 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot提供了对Redis的自动配置,并且可以通过使用`RedisTemplate`来操作Redis数据库。下面是一个简单的示例,展示如何使用Spring Boot整合Redis工具类来存储对象。 首先,在`pom.xml`文件中添加RedisSpring Boot的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 然后,在`application.properties`文件中配置Redis连接信息: ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 ``` 接下来,创建一个Redis工具类`RedisUtil`,用于对Redis数据库进行操作。下面是一个简单的实现: ```java @Configuration public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); return template; } } @Component public class RedisUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; public void setObject(String key, Object object) { redisTemplate.opsForValue().set(key, object); } public Object getObject(String key) { return redisTemplate.opsForValue().get(key); } } ``` 在上面的示例中,我们首先通过`@Configuration`注解将`RedisTemplate`配置为一个Bean,然后通过`@Autowired`注解将其注入到`RedisUtil`类中。 最后,我们可以在任何地方注入`RedisUtil`类来使用Redis的存储功能。下面是一个使用示例: ```java @Service public class UserService { @Autowired private RedisUtil redisUtil; public User getUserById(String userId) { User user = (User) redisUtil.getObject(userId); if (user == null) { // 从数据库中取出User对象并存入Redis user = userDao.getUserById(userId); redisUtil.setObject(userId, user); } return user; } } ``` 在上面的示例中,我们首先尝试从Redis中获取指定的用户对象,如果不存在,则从数据库中获取,并将其存入Redis供下次使用。这样可以提高数据访问的速度和效率。 通过上述方法,我们可以方便地使用Spring Boot整合Redis来存储对象。希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何怀逸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值