布隆過濾器是一個精巧而且經(jīng)典的數(shù)據(jù)結(jié)構(gòu)。
你可能沒想到:RocketMQ、 Hbase 、Cassandra 、LevelDB 、RocksD B 這些知名 項目中都有布隆過濾器的身影。
對于后端程序員 來講,學(xué)習(xí)和理解布隆過濾器有很大的必要性。來吧,我們一起品味布隆過濾器的設(shè)計之美。
1 緩存穿透
我們先來看一個商品 服務(wù)查詢詳情的接口 :
public ?Product?queryProductById?(Long?id){
???//?查詢緩存
???Product?product?=?queryFromCac he(id);
???if(product?!=?null)?{
?????return?product?;
???}
???//?從數(shù)據(jù)庫查詢
???product?=?queryFromDataBase(id);
???if(product?!=?null)?{
???????saveCache(id?,?product);
???}
???return?product;
}
?
?
假設(shè)此商品既不存儲在緩存中,也不存在數(shù)據(jù)庫中,則沒有辦法回寫緩存 ,當(dāng)有類似這樣大量的請求訪問服務(wù)時,數(shù)據(jù)庫的壓力就會極大。
這是一個典型的緩存穿透的場景。
為了解決這個問題呢,通常我們可以向分布式緩存中寫入一個過期時間較短的空值占位,但這樣會占用較多的存儲空間,性價比不足。
問題的本質(zhì)是:"如何以極小的代價檢索一個元素是否在一個集合中 ?"
我們的主角布隆過濾器 出場了,它就能游刃有余的平衡好時間和空間兩種維度 。
2 原理解析
布隆過濾器 (英語:Bloom Filte r)是1970年由布隆提出的。它實際上是一個很長的二進(jìn)制向量 和一系列隨機映射函數(shù) 。
布隆過濾器可以用于檢索一個元素是否在一個集合中。它的優(yōu)點是空間效率 和查詢時間 都遠(yuǎn)遠(yuǎn)超過一般的算法 ,缺點是有一定的誤識別率和刪除困難。
布隆過濾器的原理:當(dāng)一個元素被加入集合時,通過 K 個散列函數(shù)將這個元素映射成一個位數(shù)組中的 K 個點,把它們置為 1。檢索時,我們只要看看這些點是不是都是 1 就(大約)知道集合中有沒有它了:如果這些點有任何一個 0 ,則被檢元素一定不在 ;如果都是 1 ,則被檢元素很可能在 。
簡單來說就是準(zhǔn)備一個長度為 m 的位數(shù)組并初始化所有元素為 0,用 k 個散列函數(shù)對元素進(jìn)行 k 次散列運算跟 len (m) 取余得到 k 個位置并將 m 中對應(yīng)位置設(shè)置為 1。
如上圖,位數(shù)組的長度是8,散列函數(shù)個數(shù)是 3,先后保持兩個元素x,y。這兩個元素都經(jīng)過三次哈希函數(shù)生成三個哈希值,并映射到位數(shù)組的不同的位置,并置為1。元素 x 映射到位數(shù)組的第0位,第4位,第7位,元素y映射到數(shù)組的位數(shù)組的第1位,第4位,第6位。
保存元素 x 后,位數(shù)組的第4位被設(shè)置為1之后,在處理元素 y 時第4位會被覆蓋,同樣也會設(shè)置為 1。
當(dāng)布隆過濾器保存的元素越多 ,被置為 1 的 bit 位也會越來越多 ,元素 x 即便沒有存儲過,假設(shè)哈希函數(shù)映射到位數(shù)組的三個位都被其他值設(shè)置為 1 了,對于布隆過濾器的機制來講,元素 x 這個值也是存在的,也就是說布隆過濾器存在一定的誤判率 。
▍ 誤判率
布隆過濾器包含如下四個屬性:
k : 哈希函數(shù)個數(shù)
m : 位數(shù)組長度
n : 插入的元素個數(shù)
p : 誤判率
若位數(shù)組長度太小則會導(dǎo)致所有 bit 位很快都會被置為 1 ,那么檢索任意值都會返回”可能存在“ , 起不到過濾的效果。位數(shù)組長度越大,則誤判率越小。
同時,哈希函數(shù)的個數(shù)也需要考量,哈希函數(shù)的個數(shù)越大,檢索的速度會越慢,誤判率也越小,反之,則誤判率越高。
從張圖我們可以觀察到相同位數(shù)組長度的情況下,隨著哈希函數(shù)的個人的增長,誤判率顯著的下降。
誤判率 p 的公式是
k 次哈希函數(shù)某一 bit 位未被置為 1 的概率為
插入 n 個元素后某一 bit 位依舊為 0 的概率為
那么插入 n 個元素后某一 bit 位置為1的概率為
整體誤判率為 當(dāng) m 足夠大時,誤判率會越小,該公式約等于
我們會預(yù)估布隆過濾器的誤判率 p 以及待插入的元素個數(shù) n 分別推導(dǎo)出最合適的位數(shù)組長度 m 和 哈希函數(shù)個數(shù) k。
▍ 布隆過濾器支持刪除嗎
布隆過濾器其實并不支持刪除元素,因為多個元素可能哈希到一個布隆過濾器的同一個位置,如果直接刪除該位置的元素,則會影響其他元素的判斷。
▍ 時間和空間效率
布隆過濾器的空間復(fù)雜度為 O(m) ,插入和查詢時間復(fù)雜度都是 O(k) 。存儲空間和插入、查詢時間都不會隨元素增加而增大。空間、時間效率都很高。
▍哈希函數(shù)類型
Murmur3,F(xiàn)NV 系列和 Jenkins 等非密碼學(xué)哈希函數(shù)適合,因為 Murmur3 算法簡單,能夠平衡好速度和隨機分布,很多開源產(chǎn)品 經(jīng)常選用它作為哈希函數(shù)。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城 等功能
項目地址:https://github.com/YunaiV/yudao-cloud
視頻教程 :https://doc.iocoder.cn/video/
3 Guava實現(xiàn)
Google Guava是 Google 開發(fā)和維護(hù)的開源 Java 開發(fā)庫,它包含許多基本的工具類,例如字符串處理、集合、并發(fā)工具、I/O和數(shù)學(xué)函數(shù)等等。
1、添加Maven依賴
????com.google.guava
????guava
????31.0.1-jre<
2、創(chuàng)建布隆過濾器
BloomFilter?filter?=?BloomFilter.create(
??//Funnel?是一個接口,用于將任意類型的對象轉(zhuǎn)換為字節(jié)流,
??//以便用于布隆過濾器的哈希計算。
??Funnels.integerF unnel(),?
??10000,??//?插入數(shù)據(jù)條目數(shù)量
??0.001??//?誤判率
);
3、添加數(shù)據(jù)
@PostConstruct
public?void?ad dProduct()?{
????logger.info("初始化布隆過濾器數(shù)據(jù)開始");
????//插入4個元素
?????filter.put(1L);
?????filter.put(2L);
?????filter.put(3L);
?????filter.put(4L);
?????logger.info("初始化布隆過濾器數(shù)據(jù)結(jié)束");
}
4、判斷數(shù)據(jù)是否存在
public?boolean?maycontai n(Long?id)?{
????return?filter.mightContain(id);
}
接下來,我們查看 Guava 源碼中布隆過濾器是如何實現(xiàn)的 ?
static??BloomFilter?create(Funnel?funnel,?long?expectedInserti ons,?double?fpp,?BloomFilter.Strategy?strategy)?{
????//?省略部分前置驗證代碼?
????//?位數(shù)組長度
????long?numBits?=?optimalNumOfBits(expectedInsertions,?fpp);
????//?哈希函數(shù)次數(shù)
????int?numHashFunctions?=?optimalNumOfHashFunctions(expectedInsertions,?numBits);
????try?{
??????return?new?BloomFilter(
????????????????????new?LockFreeBitArray(numBits),?
????????????????????numHashFunctions,?
????????????????????funnel,
????????????????????strategy
??????);
????}?catch?(IllegalArgumentException?e)?{
??????throw?new?IllegalArgumentException("Could?not?create?BloomFilter?of?"?+?numBits?+?"?bits",?e);
????}
}
//計算位數(shù)組長度
//n:插入的數(shù)據(jù)條目數(shù)量
//p:期望誤判率
@VisibleFor Testing
static?long?optimalNumOfBits(long?n,?double?p)?{
???if?(p?==?0)?{
?????p?=?Double.MIN_VALUE;
???}
???return?(long)?(-n?*?Math.log(p)?/?(Math.log(2)?*?Math.log(2)));
}
//?計算哈希次數(shù)
@VisibleForTesting
static?int?optimalNumOfHashFunctions(long?n,?long?m)?{
????//?(m?/?n)?*?log(2),?but?avoid?truncation?due?to?division!
????return?Math.max(1,?(int)?Math.round((double)?m?/?n?*?Math.log(2)));
}
Guava 的計算位數(shù)組長度和哈希次數(shù)和原理解析這一節(jié)展示的公式保持一致。
重點來了,Bloom filter 是如何判斷元素存在的 ?
方法名就非常有 google 特色 , ?”mightContain “ 的中文表意是:”可能存在“ 。方法的返回值為 true ,元素可能存在,但若返回值為 false ,元素必定不存在。
public??boolean?mightContain(
????@Param etricNullness?T?object,
????//Funnel?是一個接口,用于將任意類型的對象轉(zhuǎn)換為字節(jié)流,
????//以便用于布隆過濾器的哈希計算。
????Funnel?funnel,??
????//用于計算哈希值的哈希函數(shù)的數(shù)量
????int?numHashFunctions,
????//位數(shù)組實例,用于存儲布隆過濾器的位集
????LockFreeBitArray?bits)?{
??long?bitSize?=?bits.bitSize();
??//使用?MurmurHash3?哈希函數(shù)計算對象?object?的哈希值,
??//并將其轉(zhuǎn)換為一個 byte 數(shù)組。
??byte[]?bytes?=?Hashing.murmur3_128().hashObject(object,?funnel).getBytesInternal();
??long?hash1?=?lowerEight(bytes);
??long?hash2?=?upperEight(bytes);
??long?combinedHash?=?hash1;
??for?(int?i?=?0;?i?
3 Redisson實現(xiàn)
Redisson 是一個用 Java 編寫的 Redis 客戶端,它實現(xiàn)了分布式對象和服務(wù),包括集合、映射、鎖、隊列等。Redisson的API 簡單易用,使得在分布式環(huán)境下使用Redis 更加容易和高效。
1、添加Maven依賴
???org.redisson
???redisson
???3.16.1
2、配置 Redisson 客戶端
@Configuration
public?class?RedissonConfig?{
?Bean
?public?RedissonClient?redissonClient()?{
????Config?config?=?new?Config();
????config.useSingleServer().setAddress("redis://localhost:6379");
????return?Redisson.create(config);
?}
?
}3、初始化
?
?
RBloomFilter?bloomFilter?=?redissonClient.
??????????????????????????????????????getBloomFilter("myBloomFilter");
//10000表示插入元素的個數(shù),0.001表示誤判率
bloomFilter.tryInit(10000,?0.001);
//插入4個元素
bloomFilter.add(1L);
bloomFilter.add(2L);
bloomFilter.add(3L);
bloomFilter.add(4L);
4、判斷數(shù)據(jù)是否存在
public?boolean?mightcontain(Long?id)?{
????return?bloomFilter.contains(id);
}
好,我們來從源碼分析 Redisson 布隆過濾器是如何實現(xiàn)的 ?
public?boolean?tryInit(long?expectedInsertions,?double?falseProbability)?{
????//?位數(shù)組大小
????size?=?optimalNumOfBits(expectedInsertions,?falseProbability);
????//?哈希函數(shù)次數(shù)
????hashIterations?=?optimalNumOfHashFunctions(expectedInsertions,?size);
????CommandBatchService?executorService?=?new?CommandBatchService(commandExecutor);
????//?執(zhí)行?Lua腳本,生成配置
????executorService.evalReadAsync(configName,?codec,?RedisCommands.EVAL_VOID,
????????????"local?size?=?redis.call('hget',?KEYS[1],?'size');"?+
????????????????????"local?hashIterations?=?redis.call('hget',?KEYS[1],?'hashIterations');"?+
????????????????????"assert(size?==?false?and?hashIterations?==?false,?'Bloom?filter?config?has?been?changed')",
????????????????????Arrays.asList(configName),?size,?hashIterations);
????executorService.writeAsync(configName,?StringCodec.INSTANCE,
????????????????????????????????????????????new?RedisCommand("HMSET",?new?VoidReplayConvertor()),?configName,
????????????"size",?size,?"hashIterations",?hashIterations,
????????????"expectedInsertions",?expectedInsertions,?"falseProbability",?BigDecimal.valueOf(falseProbability).toPlainString());
????try?{
????????executorService.execute();
????}?catch?(RedisException?e)?{
????}
????return?true;
}
?
?
Bf配置信息
Redisson 布隆過濾器初始化的時候,會創(chuàng)建一個 Hash 數(shù)據(jù)結(jié)構(gòu)的 key ,存儲布隆過濾器的4個核心屬性。
那么 Redisson 布隆過濾器如何保存元素呢 ?
public?boolean?add(T?object)?{
????long[]?hashes?=?hash(object);
????while?(true)?{
????????int?hashIterations?=?this.hashIterations;
????????long?size?=?this.size;
????????long[]?indexes?=?hash(hashes[0],?hashes[1],?hashIterations,?size);
????????CommandBatchService?executorService?=?new?CommandBatchService(commandExecutor);
????????addC onfigCheck(hashIterations,?size,?executorService);
????????//創(chuàng)建 bitset 對象,?然后調(diào)用setAsync方法,該方法的參數(shù) 是索引 。
????????RBitSetAsync?bs?=?createBitSet(executorService);
????????for?(int?i?=?0;?i??result?=?(List)?executorService.execute().getResponses();
????????????for?(Boolean?val?:?result.sub List(1,?result.size()-1))?{
????????????????if?(!val)?{
????????????????????return?true;
????????????????}
????????????}
????????????return?false;
????????}?catch?(RedisException?e)?{
????????}
????}
}
從源碼中,我們發(fā)現(xiàn) Redisson 布隆過濾器操作的對象是 位圖(bitMap) 。
在 Redis 中,位圖本質(zhì)上是 string 數(shù)據(jù)類型,Redis 中一個字符串類型的值最多能存儲 512 MB 的內(nèi)容,每個字符串由多個字節(jié)組成,每個字節(jié)又由 8 個 Bit 位組成。位圖結(jié)構(gòu)正是使用“位”來實現(xiàn)存儲的,它通過將比特位設(shè)置為 0 或 1來達(dá)到數(shù)據(jù)存取的目的,它存儲上限為 2^32 ,我們可以使用getbit/setbit命令來處理這個位數(shù)組。
為了方便大家理解,我做了一個簡單的測試。
通過 Redisson API 創(chuàng)建 key 為 mybitset 的 位圖 ?,設(shè)置索引 3 ,5,6,8 位為 1 ,右側(cè)的二進(jìn)制值 也完全匹配。
4 實戰(zhàn)要點
通過 Guava 和 Redisson 創(chuàng)建和使用布隆過濾器比較簡單,我們下面討論實戰(zhàn)層面的注意事項。
1、緩存穿透場景
首先我們需要初始化 布隆過濾器,然后當(dāng)用戶請求時,判斷過濾器中是否包含該元素,若不包含該元素,則直接返回不存在。
若包含則從緩存中查詢數(shù)據(jù),若緩存中也沒有,則查詢數(shù)據(jù)庫并回寫到緩存里,最后給前端返回。
2、元素刪除場景
現(xiàn)實場景,元素不僅僅是只有增加,還存在刪除元素的場景,比如說商品的刪除。
原理解析這一節(jié),我們已經(jīng)知曉:布隆過濾器其實并不支持刪除元素,因為多個元素可能哈希到一個布隆過濾器的同一個位置,如果直接刪除該位置的元素,則會影響其他元素的判斷 。
我們有兩種方案:
▍計數(shù)布隆過濾器
計數(shù)過濾器(Counting Bloom Filter)是布隆過濾器的擴展,標(biāo)準(zhǔn) Bloom Filter 位數(shù)組的每一位擴展為一個小的計數(shù)器(Counter),在插入元素時給對應(yīng)的 k (k 為哈希函數(shù)個數(shù))個 Counter 的值分別加 1,刪除元素時給對應(yīng)的 k 個 Counter 的值分別減 1。
雖然計數(shù)布隆過濾器可以解決布隆過濾器無法刪除元素的問題,但是又引入了另一個問題:“更多的資源占用,而且在很多時候會造成極大的空間浪費 ”。
▍ 定時重新構(gòu)建布隆過濾器
從工程角度來看,定時重新構(gòu)建布隆過濾器 這個方案可行也可靠,同時也相對簡單。
定時任務(wù)觸發(fā)全量商品查詢 ;
將商品編號添加到新的布隆過濾器 ;
任務(wù)完成,修改商品布隆過濾器的映射(從舊 A 修改成 新 B );
商品服務(wù)根據(jù)布隆過濾器的映射,選擇新的布隆過濾器 B進(jìn)行相關(guān)的查詢操作 ;
選擇合適的時間點,刪除舊的布隆過濾器 A。
5 總結(jié)
布隆過濾器 是一個很長的二進(jìn)制向量 和一系列隨機映射函數(shù) ,用于檢索一個元素是否在一個集合中 。
它的空間效率 和查詢時間 都遠(yuǎn)遠(yuǎn)超過一般的算法 ,但是有一定的誤判率 (函數(shù)返回 true , 意味著元素可能存在,函數(shù)返回 false ,元素必定不存在)。
布隆過濾器的四個核心屬性:
k : ?哈希函數(shù)個數(shù)
m : 位數(shù)組長度
n : ?插入的元素個數(shù)
p : ?誤判率
Java 世界里 ,通過 Guava 和 Redisson 創(chuàng)建和使用布隆過濾器非常簡單。
布隆過濾器無法刪除元素,但我們可以通過計數(shù)布隆過濾器 和定時重新構(gòu)建布隆過濾器 兩種方案實現(xiàn)刪除元素的效果。
為什么這么多的開源項目中使用布隆過濾器 ?
因為它的設(shè)計精巧且簡潔,工程上實現(xiàn)非常容易,效能高,雖然有一定的誤判率,但軟件設(shè)計不就是要 trade off 嗎 ?
編輯:黃飛
?
算法 (90504)
算法 (90504)
函數(shù) (61194)
函數(shù) (61194)
過濾器 (18817)
過濾器 (18817)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
相關(guān)推薦
一 、過濾 組、過濾器 編號介紹 在STM32互聯(lián)型產(chǎn)品中,CAN1和CAN2分享28個過濾器 組,其它STM32F103xx系列產(chǎn)品中有14個過濾器 組,用以對接收到的幀進(jìn)行過濾 。1、過濾器 組 每組過濾器 包括了2個可配置的32位寄存器:CAN_FxR0...
2021-08-20 06:13:09
之上。它看起來像一 個傾斜的通道,過濾器 裙邊必須通過該通道。如何使用Genesys在優(yōu)化塊中設(shè)置這樣的目標(biāo)條件? // RF 以上來自于谷歌翻譯 以下為原文Hi Experts, I am
2018-09-25 16:59:48
?模擬濾波器向?qū)?b class="flag-6" style="color: red">一種用于實際運算放大器的動手設(shè)計工具。它結(jié)束了對過濾器 建議的追捕,有助于設(shè)計具有所需規(guī)格的低通,高通或帶通濾波器,并具有更短的交貨期(圖1)。圖1.過濾器 類型。此外,它可以讓您對過濾器
2018-10-26 11:19:40
大家好,我們?nèi)绾沃质褂眯碌?b class="flag-6" style="color: red">過濾器組件?我想嘗試新的過濾器 組件如下:1)12位數(shù)據(jù)輸入2)基本漢明窗FIR低通濾波器12位樣本數(shù)據(jù)概念代碼:/全局變量It16數(shù)據(jù)[128 ]={…};/ /我將從
2019-04-16 15:14:49
玩增益,并用過濾器 的系數(shù),但沒有成功。附加- ExMPALE:輸入-正弦波800赫茲。輸出-不響應(yīng)過濾器 請你的建議…IMG-2015011-WA002.ZIP172.5 K
2019-08-19 06:35:51
AT32F系列 CAN過濾器 使用演示AT32F系列CAN過濾器 的使用方法。
2023-10-27 06:44:36
CAN過濾器 的配置(f103 hal1.8 系列)can的過濾器 的配置是對can接收到的報文進(jìn)行過濾 的配置,在STM32芯片中,可以對can的報文進(jìn)行過濾 ,從而省略cpu的處理過程。can的過濾 模式
2021-08-19 06:11:28
CAN過濾器 配置以及常見問題總結(jié)過濾器 組在具有兩個CAN的產(chǎn)品中,CAN1和CAN2分享28個過濾器 組,只有一 個CAN的系列產(chǎn)品中有14個過濾器 組,用以對接收到的幀進(jìn)行過濾 。? 設(shè)置為掩碼模式主要
2023-03-08 10:23:46
,不是采用一 個標(biāo)識符加一 個屏蔽位的方式,而是采用兩個標(biāo)識符寄存器。接收報文的每一 位都必須跟過濾器 標(biāo)識符相同。STM32普通型芯片的 CAN 有14組過濾器 組(互聯(lián)型有28組過濾器 組) ,用以對
2021-08-19 07:30:29
1.前言元旦嗨了幾天,今天回來補一 下CAN的過濾器 。就使用而言,實際上CAN的過濾器 非常簡單,只需要幾個簡單的參數(shù)配置,不需要學(xué)習(xí)什么郵箱FIFO、還回什么靜默什么的。我一 直認(rèn)為,所有的東西想要入門
2021-08-19 07:19:06
PADS Filter(過濾器 )的妙用
2013-09-15 10:41:49
你好,我讀過過濾器 組件的數(shù)據(jù)表,它說每個設(shè)計只需要使用一 個過濾器 。我嘗試的是過濾 FTK上的3軸加速度計的數(shù)據(jù)。我知道我必須使用一 個MUX和Delsig ADC。在所有的3軸中,如何在這種情況下
2019-04-08 15:30:47
一 、過濾 組、過濾器 編號介紹 在STM32互聯(lián)型產(chǎn)品中,CAN1和CAN2分享28個過濾器 組,其它STM32F103xx系列產(chǎn)品中有14個過濾器 組,用以對接收到的幀進(jìn)行過濾 。1、過濾器 組 每組過濾器 包括了2個可配置的32位寄存器:CAN_FxR0...
2021-08-23 06:51:31
下面內(nèi)容為轉(zhuǎn)載:一 、在STM32互聯(lián)型產(chǎn)品中,CAN1和CAN2分享28個過濾器 組,其它STM32F103xx系列產(chǎn)品中有14個過濾器 組,用以對接收到的幀進(jìn)行過濾 。1、過濾器 組 每組過濾器 包括了2個
2021-08-23 07:29:40
推薦一 篇博客STM32之CAN ---CAN ID過濾器 分析:http://blog.csdn.net/flydream0/article/details/8148791
2015-10-22 22:23:29
文;如果需要,就拷貝到SRAM里;如果不需要,報文就被丟棄且無需軟件的干預(yù)。為滿足這一 需求,bxCAN為應(yīng)用程序提供了14個位寬可變的、可配置的過濾器 組(13~0),以便只接收那些軟件需要的報文。硬件
2018-03-16 14:14:19
系列文章目錄文章目錄系列文章目錄前言一 、過濾器 的作用二、可變的位寬三、屏蔽位模式四、標(biāo)識符列表模式五、過濾器 組位寬和模式的設(shè)置六、過濾器 優(yōu)先級規(guī)則七、郵箱1.發(fā)送郵箱2.接收郵箱前言STM32提供
2021-08-19 07:13:10
STM32普通型芯片的 CAN 有14組過濾器 組(互聯(lián)型有28組過濾器 組) ,用以對接收到的幀進(jìn)行過濾 。每組過濾器 包括了2個可配置的32位寄存器:CAN_FxR0和 CAN_FxR1。對于過濾器 組
2021-08-20 08:27:38
bxCAN過濾器 有哪幾種工作模式?怎樣去使用bxCAN過濾器 呢?
2021-11-02 08:45:14
bxCAN是什么?bxCAN過濾器 的工作模式有哪幾種?如何去設(shè)計一 種bxCAN過濾器 呢?
2021-11-01 07:05:05
bxCAN是什么?為什么要bxCAN過濾器 呢?bxCAN過濾器 該如何去設(shè)計呢?
2021-11-02 08:50:14
需要一 個容量為100 Nm 3 / h的空氣在15°C的過濾器 ,入口壓力p 1 = 2 bar。考慮到壓降Δpmax= 10 mbar,我們得到:Kvs>(1,2×21,3)= 25,5m 3
2018-07-12 17:50:48
2411315092入口處和出口處兩側(cè) 設(shè)有壓力插口,可連接恒壓器,用來監(jiān)測壓力損失。當(dāng)過濾器 不再對灰塵起存諸作用時就需要更換了。FGS1-2 型過濾器 的過濾 卡擁有一 個可以清洗的網(wǎng)。材料/連接AlSi Rp1/2
2018-07-12 18:06:29
stm8s208 的 can 過濾器 怎么設(shè)置?
2023-10-26 08:13:17
空氣過濾器 濾網(wǎng)在很多行業(yè)發(fā)揮著一 定的作用,但是該設(shè)備在使用一 段時間之后就需要進(jìn)行清洗,要不然不利于提高設(shè)備的工作效率。那么,如何進(jìn)行清洗呢?大家是否知道?下面由天宇凈化為大家講解空氣過濾器 濾網(wǎng)設(shè)備
2020-05-14 15:57:06
購買耐高濕高效過濾器 設(shè)備之后,我們需要面臨的就是設(shè)備安裝問題,但是很多人對于這一 方面的知識都是不了解的,所以無法很好的進(jìn)行設(shè)備安裝,這也是許多用戶都會面臨的一 個麻煩。下面由天宇凈化為大家講解耐高濕
2020-05-14 15:55:22
bxCAN過濾器 的工作模式有哪幾種?如何使用bxCAN過濾器 的這幾種工作模式呢?對應(yīng)的代碼示例是怎樣的?
2021-11-01 07:07:47
嗨,我有一 個可合成的vhdl代碼用于fir過濾器 。我想找到設(shè)計過濾器 的功率和效率而不實際將其傾倒到fpga上請幫助我可以使用xilinx ise工具得到這個嗎?
2019-10-28 09:20:49
作者:GWD 時間:2019.7.4一 、課程內(nèi)容:1、問:如何增加過濾器 文件類型?答:2、問:如何新建工程:答:1)、ADD文件,過濾 后的文件;2)、編譯程序(實質(zhì)上是關(guān)聯(lián)加入的文件)3)、雙擊這個
2021-12-17 06:02:51
如何實現(xiàn)一 個稱重過濾器 ?我使用PIC32 MZ2048,并與MPLAB和諧編程。我讀過,我必須用IIR濾波器來做,但是我不知道要使用什么系數(shù)。 以上來自于百度翻譯 以下為原文 How can
2019-03-25 08:13:43
一 天中的好時光。我有Virtex 4 sx -10,需要制作512 lengthFIR過濾器 。它是一 個mached濾波器,因此系數(shù)為0和1。我使用轉(zhuǎn)置形式,我不能提高系統(tǒng)頻率(160 MHz
2020-05-28 15:54:00
我目前正在使用 iMXRT1176 的 FlexCAN 模塊,并試圖了解如何為消息緩沖區(qū)設(shè)置 id 過濾器 位。 我的理解是,例如,我可以向寄存器 RXMGMASK 寫入一 個掩碼,以確定我想將哪些位
2023-03-29 08:39:00
總結(jié)一 些最近做項目對CAN通信的過濾器 配置的理解;這里我使用STM32F105系列的芯片,有2路CAN,我使用的是CAN2,過濾器 可以設(shè)置從15開始,當(dāng)然,從1開始也是沒有問題的;當(dāng)設(shè)置了CAN
2021-08-20 07:14:33
用Dave Van Ess的這個視頻刷新關(guān)于過濾器 的理論,它解釋了不同類型的過濾器 和使用PSoC設(shè)計器的實況實現(xiàn)。對于如何在PSoC 1中使用過濾器 可以有進(jìn)一 步的簡化嗎?留下你的評論。 以上
2019-05-14 12:07:38
微信小程序-模塊化與過濾器
2020-05-27 13:10:42
是我公司專為油墨印刷行業(yè)及其他如精細(xì)化工、電子、玻璃深加工等需要過濾 油墨的行業(yè)設(shè)計生產(chǎn)的過濾 裝置。該過濾器 具有結(jié)構(gòu)新穎,外觀精美,操作簡便等特點。采用氣泵調(diào)壓的方式推動物料過濾 ,出口配有濾網(wǎng),出口
2015-04-30 14:15:36
濾芯的自清洗過濾器 和全自動自清洗過濾器 自清洗過濾器 分幾種,有手動自清洗過濾器 ,自動自清洗過濾器 (帶電機)盤式全自動過濾器 也叫自清洗過濾器 新鄉(xiāng)市平原濾器 液壓有限公司是一 家專業(yè)從事于工業(yè)過濾器
2011-03-13 20:45:52
一 :直通式反沖洗過濾器 簡介 直通式反沖洗排污過濾器 是一 種集通用的過濾 功能和在系統(tǒng)運行不停機的前提下對濾筒進(jìn)行清洗并排污的多功能使用產(chǎn)品,它設(shè)計了全新的結(jié)構(gòu)形式,在濾筒的前段設(shè)置閥板,通過
2021-06-30 08:06:52
除塵效率不同。在衡量過濾器 的除塵能力時,必須指明粒徑的大小。在同一 粒徑的前提下進(jìn)行比較,這就是分級效率。阻力是指氣體通過過濾器 的壓降,在保證過濾 精度的前提下越小越好。隨著過濾器 阻力的逐漸上升,會
2009-09-09 16:24:45
(1) 吸油過濾器 :該過濾器 設(shè)在泵的吸入管路上,管路過濾器 濾除油箱內(nèi)的殘留污染物質(zhì)的經(jīng)過空氣孔進(jìn)入的污染物,有維護(hù)泵的效果。可是為了避免泵發(fā)生空穴表象,有必要充沛注意壓力丟失,通常運用100
2020-12-07 17:27:43
過濾器 驅(qū)動程序具有什么功能?過濾器 驅(qū)動程序有什么應(yīng)用價值?怎樣去設(shè)計一種過濾器 驅(qū)動程序?
2021-04-26 06:41:39
轉(zhuǎn)鼓過濾器 是利用一 個可以轉(zhuǎn)動的不銹鋼滾筒來進(jìn)行過濾 的。滾筒的外部有一 層致密的316L不銹鋼篩網(wǎng)。滾筒可以通過齒輪由一 臺電機驅(qū)動。在轉(zhuǎn)鼓過濾器 箱體的外部,有一 臺塑料泵殼組成的加壓水泵。加壓水泵連接
2021-09-10 06:19:29
一 般人可能認(rèn)為高效纖維過濾器 過濾 精度高,對于一 般的微生物和細(xì)菌應(yīng)該都能過濾 掉,其實不然,高效過濾器 主要是以過濾 塵埃為主要目的,對于一 般的比小的微生物卻不一 定能去除,需要借助其他特殊的去菌裝置
2019-11-15 11:25:33
人員一 定要戴上防毒面具和橡膠手套。取出的過濾器 要立即密封放入趁料袋內(nèi),再放入紙箱內(nèi),使用過的面具、手套也同樣處理,然后一 起燒毀。在安裝新過濾器 時,不要隨便將頭和身體伸到裝置內(nèi),同樣要高度謹(jǐn)慎操作。排風(fēng)
2019-12-13 15:40:02
真空除菌過濾器 真空泵過濾器 真空泵除菌過濾器 【1】杭州佳潔機電設(shè)備有限公司供應(yīng);真空除菌過濾器 真空泵過濾器 真空泵除菌過濾器 產(chǎn)品簡介:真空過濾器
2022-03-03 12:06:53
醫(yī)院負(fù)壓站除菌過濾器 醫(yī)院負(fù)壓吸引滅菌過濾器 【1】杭州佳潔機電設(shè)備有限公司供應(yīng);醫(yī)院負(fù)壓站除菌過濾器 醫(yī)院負(fù)壓吸引滅菌過濾器 ;產(chǎn)品型號規(guī)格 壓縮空氣過濾器
2022-03-03 12:11:40
漢克森過濾器 【1】國產(chǎn)品牌濾芯均為我司生產(chǎn)的替代原廠品牌濾芯,其過濾 濾材采用德國原裝進(jìn)口HV公司產(chǎn)品,注冊商標(biāo)為“佳潔”牌。本公司涉及的其它品牌均無品牌意義,只是作為產(chǎn)品型號參照和客戶
2022-04-11 14:26:36
日盛過濾器 濾芯RSGA-0017G濾芯日盛過濾器 濾芯RSGA-0030G濾芯日盛過濾器 濾芯RSGA-0058G濾芯 日盛過濾器 濾芯RSGA-0125G濾芯日盛過濾器 濾芯RSGA-0145G
2022-04-12 08:35:10
多明尼克 漢德過濾器 英國DOMNICK HUNTER過濾器 DH過濾器 英國多明尼克 漢德過濾器 英國DH過濾器 【1】國產(chǎn)品牌濾芯均為我司生產(chǎn)的替代原廠品牌濾芯,其過濾 濾材采用德國原裝進(jìn)口HV公司產(chǎn)品
2022-04-12 09:13:07
介紹了國內(nèi)外擠出機用熔體過濾器 的種類、特性和應(yīng)用。雙通道雙柱塞不停機換網(wǎng)過濾器 適合于PE、PP的擠出加工,旋轉(zhuǎn)圓盤式不停機換網(wǎng)過濾器 適合于化纖拉絲,網(wǎng)帶式全自動過濾器
2009-07-09 13:19:33 11 介紹了國內(nèi)外擠出機用高分子熔體過濾器 的種類、特性和應(yīng)用。
2009-07-18 08:56:34 14 分析了網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范(NDIS)的體系結(jié)構(gòu)和標(biāo)準(zhǔn)開發(fā)接口。介紹了設(shè)計實現(xiàn)局域網(wǎng)數(shù)據(jù)包過濾器 的關(guān)鍵技術(shù)和包過濾 的基本過程。最后完成了實驗驗證,結(jié)果表明,基于NDI
2009-09-24 16:36:05 9 CN過濾器 原理
CN過濾器 采用整體玻璃鋼,耐酸耐堿,一般耐溫65℃。內(nèi)部裝有約半米高的懸浮介質(zhì)層。懸浮過濾 介質(zhì)為1-2mm小球,采用高分子材料加工,密度大約
2010-02-25 15:00:51 26
本文針對擴展式布魯姆過濾器 (EBF)內(nèi)存消耗過大,提出一種基于值域哈希二次過濾 的布魯姆過濾器 數(shù)據(jù)結(jié)構(gòu)(VHBF)和相關(guān)算法,VHBF通過在布魯姆過濾器 中對集合中的每個特征進(jìn)行k次哈希,
2010-02-26 13:45:03 12 三菱PLC(可編程邏輯控制器)編程實例項目例程——污水過濾器
2016-12-09 12:13:37 14 基于單片機的自潔式空氣過濾器 反吹控制系統(tǒng)設(shè)計_石蕾
2017-02-07 18:11:35 0
布魯姆過濾器 具有空間節(jié)儉的特點,它通常被用于無線傳感器網(wǎng)絡(luò)中。為了支持傳感網(wǎng)絡(luò)中Sink節(jié)點的展示操作,需要布魯姆過濾器 可以展示所有的元素。現(xiàn)有工作中僅可逆布魯姆過濾器 可實現(xiàn)元素的展示。為了保護(hù)傳感
2017-11-20 14:43:32 6 針對基于混淆布魯姆過濾器 的隱私集合比較( PSI)協(xié)議中存在參與方信息獲取不對等及協(xié)議不能有效應(yīng)用于云環(huán)境等問題,將混淆布魯姆過濾器 算法與代理不經(jīng)意傳輸協(xié)議相結(jié)合,提出了一種基于混淆布魯姆過濾器
2017-12-11 14:39:01 0 延遲焦化工藝是煉油工業(yè)中最常用的一種方式。在煉油過程中產(chǎn)生大量焦粉,焦粉的積累會對后續(xù)工藝過程以及設(shè)備產(chǎn)生很大的影響。目前焦化油中的焦粉一般用自動反沖洗過濾器 去除,其過濾 精度在20 -25 ym
2018-03-05 10:21:41 0 在給冰箱的制冷系統(tǒng)內(nèi)充灌制冷劑時,為了防止臟污和水分進(jìn)入制冷系統(tǒng),通常的做法是在加液管上串接一干燥過濾器 。有時,會因不知道它已經(jīng)失去干燥作用,使注入的制冷劑含水分過多,導(dǎo)致冰箱產(chǎn)生冰堵故障。為了防止這一現(xiàn)象的發(fā)生,我用加液管自制了一個干燥過濾器 ,經(jīng)使用證實效果非常好。
2019-02-07 12:33:00 7712
本視頻主要詳細(xì)介紹了過濾器 的作用,分別是濾速高、過濾 效果好;強度高、耐腐蝕;靜電作用;過濾 物質(zhì);攔截;其次介紹了水龍頭過濾器 的作用,最后介紹了活性炭過濾器 的作用。
2018-12-12 16:23:23 40930 YZ-GL100系列刮刀過濾器 ,全自動運行,過濾 精度高,性能穩(wěn)定可靠,是取代傳統(tǒng)手動過濾器 或使用棄置型濾材過濾器 的效益之選,在許多領(lǐng)域可以替代傳統(tǒng)的芯式過濾器 ,袋式過濾器 ,籃式過濾器 ,振動篩過濾器 等。
2019-01-09 14:06:47 5693 干燥過濾器 (DrierFilter)主要是起到雜質(zhì)過濾 的作用。一般來說,這要根據(jù)冰箱,空調(diào)的制冷系統(tǒng)來確定干燥器的規(guī)格,如直徑,內(nèi)徑,外徑的規(guī)格,和內(nèi)部件,如過濾 碗,網(wǎng)布,和分子篩。
2019-12-05 14:29:12 18410 高效過濾器 生產(chǎn)廠商 三河市科豐電氣有限公司高效過濾器 。三河市科豐電氣有限公司致力于為通信行業(yè)、暖通行業(yè)、節(jié)能行業(yè),過濾 行業(yè)等行業(yè)并提供專業(yè)配套產(chǎn)品和服務(wù)。高效過濾器 產(chǎn)品具有過濾 效率高、阻力
2020-03-19 14:56:00 1611
在實驗室中,我們會使用生物安全柜來保護(hù)樣品和操作人員,作為其核心部件之一,高效空氣過濾器 的品質(zhì)至關(guān)重要。在高效空氣過濾器 的安裝和使用過程中,可能會出現(xiàn)過濾器 破損的情況,會對人員和樣品造成潛在的污染
2020-04-30 16:33:25 4751 創(chuàng)新陶瓷過濾器 解決方案
2021-10-27 14:56:00 16 情況:工程目錄下中不顯示某些文件,但是實際上這些文件存在的。那么您可能需要了解一下 RT-Thread Studio 中的過濾器 ,以免刷新刷新再刷新,重啟再重啟,還是不顯示這些文件。 過濾器 入口
2021-11-16 14:37:37 1893 DH除菌濾芯ZHFT-AZ 除菌過濾器 濾芯ZHFT-BZ
2021-12-21 14:26:05 1317
壓縮空氣除菌過濾器 ZHFT-DW DH除菌濾芯ZHFT-CW
2021-12-21 14:28:32 2947 在使用STM32的CAN控制器進(jìn)行數(shù)據(jù)收發(fā),當(dāng)用到位屏蔽模式的時候,就要設(shè)置過濾器 了,這個關(guān)系到是否能夠接收到想要的數(shù)據(jù)。下面針對幾種不同情況對CAN過濾器 (Filter)進(jìn)行設(shè)置。
2022-02-10 10:00:10 3 無隔板高效過濾器 是凈化工程中主要的高效過濾器 品種,因為他相比較傳統(tǒng)的有隔板高效過濾器 更具有明顯的優(yōu)勢。所以在生產(chǎn)中也需要更加嚴(yán)格,而普通人工的檢測已經(jīng)滿足不了無隔板高效過濾器 的檢測需求,所以通過引入
2022-03-01 16:57:20 515 真空吸引系統(tǒng)過濾器 真空吸引系統(tǒng)不銹鋼除菌過濾器
2022-04-16 13:54:05 1138
帶排污閥Y型過濾器 是Y字型的,一端是使水等流質(zhì)經(jīng)過,一端是沉淀廢棄物、雜質(zhì),通常它是裝置在減壓閥、泄壓閥、定水位閥或其它設(shè)備的進(jìn)口端,它的作用是肅清水中的雜質(zhì),到達(dá)維護(hù)閥門及設(shè)備正常運轉(zhuǎn)的作用
2022-08-13 17:22:47 2251 絲扣Y過濾器 是Y過濾器 的一種,普通濾材是不銹鋼或者碳鋼,濾芯普通帶有不銹鋼骨架。 絲扣Y形過濾器 有時也叫做·不銹鋼內(nèi)螺紋Y過濾器 。? ? 特性: ? 1.絲扣Y形過濾器 裝置于進(jìn)水管路中各配套閥門
2022-08-13 17:24:47 3687 絲扣Y過濾器 是Y過濾器 的一種,普通濾材是不銹鋼或者碳鋼,濾芯普通帶有不銹鋼骨架。 絲扣Y形過濾器 有時也叫做·不銹鋼內(nèi)螺紋Y過濾器 。? 特性: 1.絲扣Y形過濾器 裝置于進(jìn)水管路中各配套閥門的前端
2022-09-05 09:27:08 2021 鑄鐵法蘭Y型過濾器 ,鑄鐵Y型過濾器 閥體資料為灰鑄鐵,適用于水、蒸汽、油品,公稱尺寸 DN32~DN500,用于工作壓力1.0MPa 的管路上,可過濾 介質(zhì)中的污垢,銹等雜物。鑄鐵過濾器 當(dāng)需求清洗
2022-10-19 10:29:26 1779
帶排污閥過濾器 是保送介質(zhì)的管道系統(tǒng)不可短少的一種過濾 安裝,帶排污閥過濾器 通常裝置在減壓閥、泄壓閥、定水位閥或其它設(shè)備的進(jìn)口端,用來肅清介質(zhì)中的雜質(zhì),以維護(hù)閥門及設(shè)備的正常運用。帶排污閥過濾 用具有構(gòu)造
2022-10-19 10:31:49 898 絲扣Y形過濾器 是保送介質(zhì)管道上不可短少的一種安裝,通常裝置在減壓閥、泄壓閥、定水位閥或其它設(shè)備的進(jìn)口端,用來消弭介質(zhì)中的雜質(zhì),以維護(hù)閥門及設(shè)備的正常運用。 絲扣Y形過濾器 有時也叫做·不銹鋼內(nèi)螺紋
2022-10-24 15:03:32 3407 法蘭Y型過濾器 是除去液體中少量固體顆粒的小型設(shè)備,可維護(hù)設(shè)備的正常工作,當(dāng)流體進(jìn)入置有? ?規(guī)格濾網(wǎng)的濾筒后,其雜質(zhì)被阻撓,而清潔的濾液則由過濾器 出口排出,當(dāng)需求清洗時,只需將可拆卸的濾筒取出,處置
2022-10-24 15:04:19 1604 Y型過濾器 是保送介質(zhì)的管道系統(tǒng)不可短少的一種過濾 安裝,Y型過濾器 通常裝置在減壓閥、泄壓閥、定水位閥或其它設(shè)備的進(jìn)口端,用來? ?介質(zhì)中的雜質(zhì),以維護(hù)閥門及設(shè)備的正常運用。Y型過濾 用具有構(gòu)造*,阻力
2022-10-25 15:32:39 1707
Y型過濾器 屬于管道粗過濾器 ,可用于液體、氣體或其他介質(zhì)大顆粒物過濾
2023-01-12 09:57:10 4681 漢克森過濾器 【1】國產(chǎn)品牌濾芯均為我司生產(chǎn)的替代原廠品牌濾芯,其過濾 濾材采用德國原裝進(jìn)口HV公司產(chǎn)品,注冊商標(biāo)為“佳潔”牌。本公司涉及的其它品牌均無品牌意義,只是作為產(chǎn)品型號參照和客戶選型對照
2023-03-01 08:53:14 850 過濾器 藥液過濾器 濾除率測試儀
2023-03-09 14:53:13 483 過濾器 模式是指通過構(gòu)造一系列不同的標(biāo)準(zhǔn)實現(xiàn)類,通過這些標(biāo)準(zhǔn)實現(xiàn)類把目標(biāo)對象(通常是多個)按照對應(yīng)的標(biāo)準(zhǔn)進(jìn)行過濾 ,從而得到想要的對象(或?qū)ο蠼M)。
2023-06-01 14:32:18 854
貝騰過濾器 濾芯
2022-04-11 15:09:56 439 殺菌過濾器 滅菌過濾器 除菌過濾器
2022-03-03 14:03:50 1042 布隆過濾器 是一個精巧而且經(jīng)典的數(shù)據(jù)結(jié)構(gòu)。
2023-06-30 10:03:28 315 TSMaster的4種過濾器 ://硬件過濾器 :可以在硬件端針對數(shù)據(jù)位進(jìn)行篩選過濾 ,硬件過濾 。在硬件端阻止接收一部分不需要的報文,留更多帶寬對其他報文進(jìn)行接收。//數(shù)據(jù)流過濾器 :過濾 總線數(shù)據(jù)流,軟件
2023-10-21 08:21:47 1177
Spring Boot是一個用于構(gòu)建Java應(yīng)用程序的開發(fā)框架,它提供了許多功能和工具來簡化開發(fā)和部署過程。其中兩個重要的功能是過濾器 和攔截器。本文將詳細(xì)介紹Spring Boot過濾器 和攔截器
2023-12-03 15:00:12 597 前置過濾器 的使用壽命有多長? 前置過濾器 的使用壽命有多長,這是一個相對而言的概念,因為它的使用壽命取決于多個因素。下面將詳細(xì)介紹前置過濾器 的使用壽命以及影響因素。 一、什么是前置過濾器 ? 前置過濾器
2023-12-11 11:38:01 409
正在加载...
主站蜘蛛池模板:
日本免费无码A专区在线观看
|
双腿打开揉弄高潮H苏安安秦慕深
|
欧美国产一区二区三区激情无套
|
99热最新在线 |
久久免费国产视频
|
护士被老头边摸边吃奶的视频
|
香蕉水蜜桃牛奶涩涩
|
久久亚洲黄色
|
手机在线看片欧美亚洲
|
中国xxx视频
|
国产亚洲精品久久久久久入口
|
久久综合狠狠综合久久综合88
|
japanese色系free日本
|
草699一码二码三码四码
|
日本大尺码喷液过程视频
|
999久久免费高清热精品
|
亚洲 欧美 中文 日韩 另类
|
久久国产精品福利影集
|
欧美最猛性XXXXX肛交
|
亚洲乱妇88网
|
午夜福利体验免费体验区
|
国产亚洲精品欧洲在线视频
|
国产综合91
|
好男人视频免费高清在线观看www
|
爽爽窝窝午夜精品一区二区
|
久久青草免费线观最新
|
日本无码毛片一区二区手机看
|
翘臀后进美女白嫩屁股视频
|
999久久久无码国产精蜜柚
|
精品AV国产一区二区三区
|
男人女人边摸边吃奶边做
|
女教师跟黑人男朋友激情过后
|
影音先锋电影资源av
|
日本性xxx |
wwww69 |
欧美乱妇日本无乱码特黄大片
|
日韩人妻无码精品-专区
|
亚洲AV久久久噜噜噜久久
|
又粗又大又爽又黄的免费视频
|
好满射太多了装不下了视频
|
99九九免费热在线精品
|