当前位置:   article > 正文

基于Redis的Set实现黑白名单的过滤校验器

基于Redis的Set实现黑白名单的过滤校验器

基于Redis的Set实现黑白名单的过滤校验器

黑白名单过滤器在实际开发中有很多种,比如:用户黑名单,IP黑名单等。在一些场景下,如果仅仅通过数据库DB来进行过滤处理。在并发量小的情况下是没有问题。

但是如果在高并发的场景下,可能会出现性能瓶颈,这时采用redis来实现是最佳的选择方案。如何进行开发和处理呢?

答案:redis中的数据结构 set。

  • 把黑名单的用户数据放入到redis的集合中。
  • 在登录、评价或在一些需要限制的地方,通过sismember命令来查询用户是否在黑名单列表中,如果存在就返回1,不存在就返回0。
sadd user_black_items 1 2 3
sismember user_black_items 1
  • 1
  • 2

1、实现用户黑名单

目标接口的实现:

  • 添加用户到黑名单
  • 判断用户是否在黑名单中
  • 将用户移除黑名单
package com.example.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

/**
 * @Auther: 长颈鹿
 * @Date: 2021/08/21/13:25
 * @Description:
 */
@Service
public class BlackUserListService {
   

    private final static
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/503426
推荐阅读
相关标签
  

闽ICP备14008679号