Redis8中的布谷鸟过滤器

前言

Redis8新增布谷鸟过滤器,也是一种概率过滤器,用来判断集合中元素存在与否,跟布隆过滤器差不多,在某些场景下表现还可能优于布隆过滤器

布谷鸟过滤器

新增布谷鸟过滤器

使用CF.RESERVE创建布谷鸟过滤器

css 复制代码
CF.RESERVE key capacity [BUCKETSIZE bucketsize] [MAXITERATIONS maxiterations] [EXPANSION expansion]

key: 过滤器键值

capacity: 过滤器容量

bucketsize: 每个桶中的项目数

MAXITERATIONS: 决定了寻找传入指纹槽位的尝试次数

expansion: 创建新过滤器时,其大小是当前过滤器大小乘以 expansion

创建过滤器

perl 复制代码
CF.RESERVE qq  1000

创建一个名为qq的布谷鸟过滤器

重复创建会报

CF.ADD添加元素

使用

vbnet 复制代码
CF.ADD key item

添加元素

重复添加也可以

CF.ADDNX

CF.ADDNX命令,不存在时,才会添加元素

vbnet 复制代码
CF.ADDNX key item

执行

复制代码
CF.ADDNX aa1 aa1

重复添加键值会报

CF.COUNT

CF.COUNT命令是判断元素添加次数

vbnet 复制代码
CF.COUNT key item

CF.DEL

CF.DEL命令是删除一次元素,对于多次添加的,还是会存在

vbnet 复制代码
CF.DEL key item

执行命令

复制代码
CF.DEL aa aa

再次执行

复制代码
CF.COUNT aa aa

输出结果为

CF.EXISTS

CF.EXISTS是判断元素是否存在

vbnet 复制代码
CF.EXISTS key item

执行命令

复制代码
CF.EXISTS aa aa

输出结果为

找一个没有的元素

CF.MEXISTS

CF.MEXISTS批量判断元素是否存在

css 复制代码
CF.MEXISTS key item [item ...]

执行命令

复制代码
CF.MEXISTS aa aa aa1 aa2

输出结果为

CF.INFO

CF.INFO命令查看布谷鸟过滤器信息

不存在会报错

CF.INSERT

CF.INSERT创建一个布谷鸟过滤器,并添加元素

css 复制代码
CF.INSERT key [CAPACITY capacity] [NOCREATE] ITEMS item [item ...]

执行命令

objectivec 复制代码
CF.INSERT qq CAPACITY 1000 ITEMS  hello hello1 hello2

输出结果为

不存在则会创建

CF.INSERTNX

CF.INSERTNX不存在则添加

css 复制代码
CF.INSERTNX key [CAPACITY capacity] [NOCREATE] ITEMS item [item ...]

执行

objectivec 复制代码
CF.INSERTNX qq1 CAPACITY 1000 ITEMS  hello hello1 hello2 HELLO3

输出结果为

总结

Redis8新增布谷鸟过滤器,现在可以借助Redis工具存,而不用自己写

相关推荐
uzong6 分钟前
软件架构指南 Software Architecture Guide
后端
又是忙碌的一天6 分钟前
SpringBoot 创建及登录、拦截器
java·spring boot·后端
勇哥java实战分享1 小时前
短信平台 Pro 版本 ,比开源版本更强大
后端
学历真的很重要1 小时前
LangChain V1.0 Context Engineering(上下文工程)详细指南
人工智能·后端·学习·语言模型·面试·职场和发展·langchain
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue二手家电管理系统(源码+数据库+文档)
vue.js·spring boot·后端·课程设计
上进小菜猪1 小时前
基于 YOLOv8 的智能杂草检测识别实战 [目标检测完整源码]
后端
冰冰菜的扣jio2 小时前
Redis缓存中三大问题——穿透、击穿、雪崩
java·redis·缓存
韩师傅2 小时前
前端开发消亡史:AI也无法掩盖没有设计创造力的真相
前端·人工智能·后端
阿里巴巴P8资深技术专家2 小时前
基于 Spring AI 和 Redis 向量库的智能对话系统实践
人工智能·redis·spring
栈与堆3 小时前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust