Redis实现评论限制

在博客中为了避免评论被刷屏,利用Redis进行评论限制。通过引入Redis依赖,配置拦截器,并自定义注解,实现了在短时间内对特定接口的访问限制。然而,最初的实现导致IP永久无法评论,通过调整Redis的设置,确保在限制时间过后,IP仍能恢复评论功能。主要解决了Redis在设置值时过期时间被替换的问题,现在可以在限制评论次数的同时,保持合理的时效性。
摘要由CSDN通过智能技术生成

做博客的时候原本为了省事就没加入评论限制,结果评论被刷屏了,可以用redis在短期时间内进行评论限制。这次更新加上了拦截器,避免了短时间内多次刷评论的情况

引入Redis依赖

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

配置文件yaml

spring:
  redis:
    #redis相关配置
    #要连接的redis的ip地址
    #若设置了密码也要添加上密码
    host: localhost
    port: 6379
    timeout: 1800000
    database: 0
  #使用的数据库索引,为0号数据库

自定义一个注解用于拦截指定方法

@Target({
   ElementType.METHOD})//指定范围,此注解只能声明在方法上
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LimitComments {
   
    int seconds();
    int maxCount();

}

编写拦截器

@Component
public class SessionInterceptor implements HandlerInterceptor {
   
    //    在方法执行前进行拦截
    @Autowired
    private RedisTemplate redisTemplate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值