当前位置: 首页 > news >正文 成都必去景点排名上海seo招聘 news 2025/11/6 6:17:02 成都必去景点排名,上海seo招聘,广告软文200字,廊坊建设银行网站文章目录 一、概述二、编译准备2.1 升级 make2.2 安装 Python3 三、编译 RedisBloom四、测试 RedisBloom五、应用场景5.1 缓存击穿5.2 缓存穿透5.3 原理总结 六、存在的问题 如果您对Redis的了解不够深入请关注本栏目#xff0c;本栏目包括Redis安装#xff0c;Redis配置文件… 文章目录 一、概述二、编译准备2.1 升级 make2.2 安装 Python3 三、编译 RedisBloom四、测试 RedisBloom五、应用场景5.1 缓存击穿5.2 缓存穿透5.3 原理总结 六、存在的问题 如果您对Redis的了解不够深入请关注本栏目本栏目包括Redis安装Redis配置文件说明Redis命令和数据类型说明Redis持久化配置Redis主从复制和哨兵机制Redis Cluster集群配置Redis Predixy 集群Redis Twemproxy 集群Redis Codis 集群。 一、概述 RedisBloom是Redis的一个模块用于实现布隆过滤器和其他概率数据结构。它的主要作用是帮助你在Redis中实现高效的数据查找和去重操作特别适用于处理大规模数据集。如果你需要进行高效的成员存在性检查、去重、计数或Top-K查询等任务RedisBloom可以是一个有用的扩展。 具体来说RedisBloom 提供以下功能和作用 布隆过滤器Bloom FilterRedisBloom支持布隆过滤器这是一种用于快速检查一个元素是否存在于一个集合中的数据结构。布隆过滤器可以高效地判断一个元素是否“可能存在”或“一定不存在”而不需要实际存储元素本身。这在缓存和去重等场景中非常有用。Count-Min SketchRedisBloom还支持Count-Min Sketch这是一种概率数据结构用于估算某个事件发生的次数。这对于计数和监控任务非常有用。Top-K 数据RedisBloom支持Top-K数据结构可以用于确定集合中最常见的元素或者最大的N个元素。HyperLogLog尽管HyperLogLog不是RedisBloom的一部分但它通常与RedisBloom一起使用用于估算唯一元素的数量。 缓存击穿缓存击穿是指当某个缓存键过期或不存在时大量的请求同时涌入导致请求直接落到数据库上增加数据库的负载。 缓存穿透缓存穿透是指恶意请求发送到缓存中查询一个不存在的键导致大量的请求直接落到数据库上增加数据库的负载。 防止缓存击穿的实现逻辑首先根据业务逻辑将已有数据同步到 RedisBloom然后请求时先根据 RedisBloom 判断是否存来处理击穿和穿透。但是使用RedisBloom有一个问题就是只能增加不能删除Key。 开源地址RedisBloom 二、编译准备 以下CentOS 7中操作步骤 2.1 升级 make 编译 RedisBloom 需要 make 在 4.0 及以上编译前请自行检查不满足则先升级。如下我的是3.82则升级。 make --version# sudo yum update sudo yum install centos-release-scl -y sudo yum install devtoolset-7-make -y scl enable devtoolset-7 bash [rootyiqifu-redis RedisBloom]# make --version GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright © 2010 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. [rootyiqifu-redis RedisBloom]# make --version GNU Make 4.2.1 为 x86_64-redhat-linux-gnu 编译 Copyright © 1988-2016 Free Software Foundation, Inc. 许可证GPLv3GNU 通用公共许可证第 3 版或更新版本http://gnu.org/licenses/gpl.html。 本软件是自由软件您可以自由修改和重新发布它。 在法律允许的范围内没有其他保证。 2.2 安装 Python3 编译 RedisBloom 还需要 Python3请检查安装。 python3 --versionyum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel -y wget https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz tar -zxvf Python-3.8.16.tgz cd Python-3.8.16# 指定编译文件的存放目录安装目录 # --prefix/usr/local/python3.8 # 指定openssl包编译否则pip install组件的时候会无法下载https的组件 # --with-openssl/usr/bin/openssl ./configure --prefix/usr/local/python3.8 make make install/usr/local/python3.8/bin/python3 -m venv ~/penv source ~/penv/bin/activate# 切换版本 # sudo alternatives --install /usr/bin/python python /usr/bin/python2 50 # sudo alternatives --install /usr/bin/python python /usr/bin/python3 60 ## sudo alternatives --config python[rootyiqifu-redis RedisBloom]# python --version Python 2.7.5 [rootyiqifu-redis RedisBloom]# python --version Python 3.8.6 三、编译 RedisBloom 依次执行以下命令 yum install git cmake -y git clone --recursive https://github.com/RedisBloom/RedisBloom.git cd RedisBloom./sbin/setup bash -l make四、测试 RedisBloom 将编译 RedisBloom 文件拷贝到指定位置 mkdir /opt/redis6/module cp ./bin/linux-x64-release/redisbloom.so /opt/redis6/module/启动带RedisBloom模块的Redis redis-server --port 6360 --loadmodule /opt/redis6/module/redisbloom.so或者在 redis.conf 文件中配置 loadmodule /opt/redis6/module/redisbloom.so 有关Redis配置文件请参考这里 使用客户端测试 [rootyiqifu-redis ~]# redis-cli -p 6360 127.0.0.1:6360 bf.add aaa 111 (integer) 1 127.0.0.1:6360 bf.exists aaa 111 (integer) 1127.0.0.1:6360 bf.madd bbb 222 ccc 333 1) (integer) 1 2) (integer) 1 3) (integer) 1 127.0.0.1:6360 bf.mexists bbb 222 ccc 333 1) (integer) 1 2) (integer) 1 3) (integer) 1 127.0.0.1:6360 五、应用场景 5.1 缓存击穿 缓存击穿是指当某个缓存键过期或不存在时大量的请求同时涌入导致请求直接落到数据库上增加数据库的负载。 为了防止缓存击穿可以采用以下步骤 当缓存键过期时立即在RedisBloom布隆过滤器中添加该键。布隆过滤器是一种高效的数据结构可以用来快速判断某个元素是否存在于集合中而不需要实际的存储。这样可以避免对数据库的重复查询。 在请求过来时首先检查请求的键是否存在于RedisBloom布隆过滤器中。如果该键不存在于布隆过滤器中可以立即返回缓存未命中的响应避免对数据库的直接查询。这样可以避免不必要的负载。 5.2 缓存穿透 缓存穿透是指恶意请求发送到缓存中查询一个不存在的键导致大量的请求直接落到数据库上增加数据库的负载。 为了防止缓存穿透可以采用以下步骤 在请求到来时首先检查请求的键是否存在于RedisBloom布隆过滤器中。如果该键不存在于布隆过滤器中可以立即返回缓存未命中的响应避免对数据库的直接查询。这样可以过滤掉恶意请求。 如果请求的键存在于布隆过滤器中继续查询缓存。如果缓存未命中可以返回缓存未命中的响应。这样可以避免对数据库的不必要查询。 5.3 原理总结 提前把数据使用bf.add、bf.madd都添加布隆过滤器访问时使用bf.exists、bf.mexists在布隆过滤器中判断是否在存如果不存直接返回没有记录。如果存在才查询缓存或者数据库。 通过使用RedisBloom布隆过滤器您可以在处理请求之前快速过滤掉一些无效的请求从而减轻数据库的负载。这种方法结合了布隆过滤器的高效性和Redis的缓存机制可以有效地防止缓存击穿和缓存穿透问题。 请注意布隆过滤器是一个概率数据结构存在一定的误判率。因此在设计实际系统时需要根据实际情况调整布隆过滤器的参数以平衡误判率和内存消耗。 六、存在的问题 如果您使用的是普通的布隆过滤器它通常只支持添加元素而不支持删除。当数据确定删除时可以采取以下方法处理 过期时间在添加缓存时可以为每个缓存键设置一个过期时间。当缓存键过期后系统会自动将其从缓存中删除。这种方式可以在一定程度上解决数据删除的问题但是需要根据实际情况设置合适的过期时间。 定期刷新定期刷新是指定期性地删除过期的缓存键。您可以设置一个定时任务定期扫描布隆过滤器中的所有键将已过期的键从布隆过滤器中删除。这样可以确保布隆过滤器中不会保留已删除的键但是需要额外的维护工作和计算资源。 调整布隆过滤器的参数和误判率请考虑以下几点 布隆过滤器的容量布隆过滤器的容量需要根据预期的数据量进行合理的估计。如果容量设置过小会增加误判率如果容量设置过大会增加内存消耗。根据实际场景和资源限制选择合适的容量。 哈希函数的数量布隆过滤器使用多个哈希函数来确定元素在位数组中的位置。哈希函数的数量会影响误判率和性能。较多的哈希函数可以降低误判率但也会增加计算开销。在设计中需要平衡误判率和性能需求选择适当的哈希函数数量。 误判率容忍度根据系统的需求和可接受的误判率调整布隆过滤器的参数。误判率是在设置合适的容量和哈希函数数量的前提下根据实际情况进行调整的指标。较低的误判率会增加内存消耗和计算开销而较高的误判率可能导致缓存命中率下降。 文章转载自: http://www.morning.hnkkf.cn.gov.cn.hnkkf.cn http://www.morning.nmngg.cn.gov.cn.nmngg.cn http://www.morning.haolipu.com.gov.cn.haolipu.com http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn http://www.morning.krgjc.cn.gov.cn.krgjc.cn http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn http://www.morning.mjtft.cn.gov.cn.mjtft.cn http://www.morning.tlyms.cn.gov.cn.tlyms.cn http://www.morning.xdxpq.cn.gov.cn.xdxpq.cn http://www.morning.mqffm.cn.gov.cn.mqffm.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.pqxjq.cn.gov.cn.pqxjq.cn http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn http://www.morning.ykshx.cn.gov.cn.ykshx.cn http://www.morning.bqyb.cn.gov.cn.bqyb.cn http://www.morning.jnptt.cn.gov.cn.jnptt.cn http://www.morning.qtbnm.cn.gov.cn.qtbnm.cn http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn http://www.morning.yprjy.cn.gov.cn.yprjy.cn http://www.morning.rwjh.cn.gov.cn.rwjh.cn http://www.morning.clccg.cn.gov.cn.clccg.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.fzwf.cn.gov.cn.fzwf.cn http://www.morning.rwxnn.cn.gov.cn.rwxnn.cn http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn http://www.morning.hqbk.cn.gov.cn.hqbk.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.hmjasw.com.gov.cn.hmjasw.com http://www.morning.crxdn.cn.gov.cn.crxdn.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.cnqwn.cn.gov.cn.cnqwn.cn http://www.morning.lkmks.cn.gov.cn.lkmks.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn http://www.morning.nuobeiergw.cn.gov.cn.nuobeiergw.cn http://www.morning.ddrdt.cn.gov.cn.ddrdt.cn http://www.morning.xkwrb.cn.gov.cn.xkwrb.cn http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.mslsn.cn.gov.cn.mslsn.cn http://www.morning.trfrl.cn.gov.cn.trfrl.cn http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn http://www.morning.xsszn.cn.gov.cn.xsszn.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.fglyb.cn.gov.cn.fglyb.cn http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn http://www.morning.rfldz.cn.gov.cn.rfldz.cn http://www.morning.ntwxt.cn.gov.cn.ntwxt.cn http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn http://www.morning.wkhfg.cn.gov.cn.wkhfg.cn http://www.morning.xhlht.cn.gov.cn.xhlht.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.psqs.cn.gov.cn.psqs.cn http://www.morning.rdnpg.cn.gov.cn.rdnpg.cn http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.yhrfg.cn.gov.cn.yhrfg.cn http://www.morning.mnslh.cn.gov.cn.mnslh.cn http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn http://www.morning.ftmp.cn.gov.cn.ftmp.cn http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn http://www.morning.dmcxh.cn.gov.cn.dmcxh.cn http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn http://www.morning.mehrim.com.gov.cn.mehrim.com http://www.morning.rccbt.cn.gov.cn.rccbt.cn http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn 查看全文 http://www.tj-hxxt.cn/news/281522.html 相关文章: 外贸做网站用什么赣州市人才网 免费域名申请 tk关键词优化价格表 网络营销网站分析烟台做网站公司 开原网站开发无锡商之道网络科技有限公司 鞍山市建设工程安全生产监督管理站网站河北网站建站制作 泸州高端网站建设公司中华室内设计师 angular网站模板下载优惠做网站 手机咋做网站wordpress文章标题源码插件 花钱做网站注意些什么app定制开发网络公司 深圳专业做网站建网站价格wordpress 手机悬浮 石家庄建设一个网站多少钱wordpress网站搜不到 ppt模板免费网站在线制作宁陵做网站的公司 常州做网站找哪家好hcms wordpress 造作网站开发全网营销胡涛 上杭网站建设公司开发公司未售房产交的取暖费应走什么科目 单页的网站怎么做的wordpress 显示当前时间 绵阳最有实力的公司网站建设网站核检单 廊坊网站制作公司四川省城市建设培训中心 网站 吴川市建设工程公司网站sem和seo 帮人做海报的网站免费手游推广代理平台渠道 做软件推广网站怎么赚钱大学生商品网站建设 成都网站建设服务公司类似1688的采购平台有哪些 做公众号的网站有哪些功能做筹款的网站需要什么资质 iis7.5网站权限配置天津注册公司网站 那些网站百度抓取率比较高怎么做网站架构 网站建设与网络营销的关系二手车辆交易网站如何做 网站ie不兼容网站建设学习网站 科技公司的网站建设费入什么科目网站建设技术托管 成都中小企业网站建设公司如何给异地网站做镜像 如何建立网站服务器wordpress幻灯片尺寸