ruoyi使用redis存取数据
时间: 2025-01-06 09:46:04 浏览: 15
### Ruoyi 框架中 Redis 的集成与使用
在Ruoyi框架中集成了Redis用于提升数据访问效率,通过缓存机制减少数据库压力并提高响应速度。具体来说,在本地数据库读取到数据之后,解析Bin log,然后将数据写入同步到Redis中,随后客户端可以从Redis读取这些数据[^1]。
#### 项目准备阶段
对于想要利用Redis增强应用程序性能的开发者而言,需先完成必要的准备工作:
- **安装Redis客户端**:确保服务器上已部署好Redis服务端程序,并能够正常启动运行。
- **配置Redis连接**:编辑`application.yml`文件来设置Redis的相关参数,如主机地址、端口号以及密码等信息[^2]。
```yaml
spring:
redis:
host: localhost
port: 6379
password: your_password_here
```
#### 编码实践部分
##### 添加依赖项
首先需要引入Spring Data Redis库的支持以便更好地操作Redis实例。可以在项目的pom.xml文件内加入如下Maven坐标:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
##### 创建工具类
接着定义一个名为`RedisUtil.java`的帮助函数集合,它封装了一些常用的命令接口供业务逻辑层调用:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
@Component
public class RedisUtil {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void set(String key, Object value){
redisTemplate.opsForValue().set(key,value);
}
public Object get(String key){
return redisTemplate.opsForValue().get(key);
}
}
```
##### 应用场景举例
假设有一个简单的商品库存管理系统,每当有新的订单提交时都会触发一次查询请求去获取指定产品的剩余数量;此时就可以考虑把这部分热点数据放入Redis里做临时保存,从而减轻MySQL的压力。下面给出了一段模拟的商品详情页加载过程中涉及的数据交互代码片段:
```java
@RestController
@RequestMapping("/product")
public class ProductController {
@Resource
private ProductService productService;
@GetMapping("/{id}")
public ResponseEntity<?> getProductById(@PathVariable Long id) throws Exception{
String cacheKey = "PRODUCT_INFO_" + id.toString();
Object cachedData = redisUtil.get(cacheKey);
if(cachedData != null){
System.out.println("Hit Cache!");
return new ResponseEntity<>(cachedData, HttpStatus.OK);
}else{
try{
Product productInfo = productService.getProductById(id);
// 将查找到的结果存放到Redis里面作为下次快速返回的基础
redisUtil.set(cacheKey, productInfo);
return new ResponseEntity<>(productInfo ,HttpStatus.CREATED);
}catch(Exception e){
throw new RuntimeException(e.getMessage());
}
}
}
}
```
上述案例展示了如何借助于Redis加速Web API的服务质量,同时也体现了其作为一种高效的键值型NoSQL解决方案所带来的价值所在[^3]。
阅读全文