基于Redis的Set实现黑白名单的过滤校验器
黑白名单过滤器在实际开发中有很多种,比如:用户黑名单,IP黑名单等。在一些场景下,如果仅仅通过数据库DB来进行过滤处理。在并发量小的情况下是没有问题。
但是如果在高并发的场景下,可能会出现性能瓶颈,这时采用redis来实现是最佳的选择方案。如何进行开发和处理呢?
答案:redis中的数据结构 set。
- 把黑名单的用户数据放入到redis的集合中。
- 在登录、评价或在一些需要限制的地方,通过sismember命令来查询用户是否在黑名单列表中,如果存在就返回1,不存在就返回0。
sadd user_black_items 1 2 3
sismember user_black_items 1
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 Logger log

本文介绍了如何利用Redis的Set数据结构实现高并发场景下的用户黑名单过滤器。通过将黑名单数据存储到Redis中,利用`sismember`命令查询用户是否在黑名单内,以提升性能并避免数据库瓶颈。文章包含实现用户黑名单接口、定义测试Controller以及从MySQL同步黑名单到Redis的步骤。
最低0.47元/天 解锁文章
939

被折叠的 条评论
为什么被折叠?



