使用redis+springboot实现日访问量统计
时间: 2023-12-26 15:03:41 浏览: 175
1. 引入依赖
在 `pom.xml` 文件中引入 Redis 和 Spring Boot 相关的依赖:
```xml
<!-- Redis 相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- Spring Boot 相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 配置 Redis
在 `application.properties` 文件中配置 Redis:
```properties
# Redis 配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.database=0
```
3. 编写代码
在 Spring Boot 项目中编写 Controller 类,实现日访问量统计的功能。
```java
@RestController
public class VisitController {
private final String KEY = "visit_count";
@Autowired
private StringRedisTemplate redisTemplate;
@GetMapping("/visit")
public String visit() {
// 获取当前日期
String today = LocalDate.now().toString();
// 计数器自增
Long count = redisTemplate.opsForHash().increment(KEY, today, 1);
// 返回结果
return "今日访问量:" + count;
}
@GetMapping("/visit/count")
public String getCount() {
// 获取当前日期
String today = LocalDate.now().toString();
// 获取访问量
Object value = redisTemplate.opsForHash().get(KEY, today);
Long count = value != null ? Long.parseLong(value.toString()) : 0L;
// 返回结果
return "今日访问量:" + count;
}
}
```
在上述代码中,我们使用 Redis 的 Hash 数据结构来存储每天的访问量。`visit` 方法用于增加访问量,`getCount` 方法用于获取当前日期的访问量。
4. 测试
启动 Spring Boot 项目后,访问 `http://localhost:8080/visit` 可以增加访问量,访问 `http://localhost:8080/visit/count` 可以获取当前日期的访问量。
注意:上述代码中只是一个简单的示例,实际应用中还需要考虑并发访问的情况,可以使用 Redis 的分布式锁来解决。
阅读全文