① chatbot對底層程序員的影響大嗎
ChatGPT 的出現可能會對一些低端的工作造成影響,簡派御例如數據錄入、文本生成等簡單的任務,但它不太可能直接導致底層程序員失業。
首先,ChatGPT 只是一種工具,它不能完全取代人類編程員,因為它仍然需要人類來構建、部署和維護其底層系統。
其次,ChatGPT 的主要應用是自攔岩動生成文本,並不適用於所有編程任務。它還不具備創造性和判斷力,無法獨立完成復雜的編程任務。
最後, ChatGPT 的出現可能會帶來新的機會,羨液使得程序員更多地關注於創造性和技術領先的工作,而不是簡單的重復性工作。
因此,我認為 ChatGPT 不太可能導致底層程序員失業,但是它可能對工作內容和工作方式造成一定的影響。
② 一台電腦如何帶兩個顯示器並顯示不同內容
「網路極客」,全新視角、全新思路,伴你遨遊神奇的 科技 世界。
一台電腦如何雙屏顯示,並且每個屏幕顯示不同的內容?
具體來看看是如何實現雙顯示器輸出的吧。
確定顯卡的輸出埠類型
確定顯示器的埠類型
選購連接線纜
顯示方式
若要實現雙屏顯示不同的內容,需要使用到顯示模式中的擴展功能。
多屏顯示應用舉例
1.程序員利器,一屏用於輸入代碼,一屏用於查找資料或調試。
2.不裝六個屏都不好意思出來炒股,你的屏幕數達標了么?
3.電腦外接投影,通過大屏提升影音觀感。
4.另類雙屏顯示,提升工作歲塵效率。
關於雙屏顯示,還有哪些更加有趣的操作?
歡迎大家留言討論,喜歡的點點關注。
一台電腦連接兩個顯示器,通過擴展屏幕的方式,實現多屏顯示,擴展桌面顯示內容,在工作中使用非常方便。一個屏幕編輯文字,一個屏幕查閱資料,可以提供電腦工作者的工作效率,不用在不同的應用碰雀塵之間切來切去。
必備條件
配置方式
其他注意事項
對於實現電腦多屏顯示,提供工作效率,大家有什麼看法呢,歡迎在評論區,留言討論。
如需更多幫助,請私信關注。謝謝
如題所述
一台電腦主機如何連接兩個顯示器顯示不同的內容?
要先保證一台主機,並且連接兩個顯示器顯示不同的內容
第一,顯卡的選擇,顯卡必須支持高清介面或者是,模擬介面,或者是數字介面,這樣是保證一台電腦連接兩台顯示器,並且同時顯示不同內容的主要條件,當然,這只是作為一個舉例用的圖片在安裝的時候觀察顯卡,後面的介面,如果都想使用數字介面,可以在網上去購買模擬介面轉換
第二,在系統裡面進行設置,保證一台電腦,同時連接兩台顯示器,並且顯示不同的內容
值得注意的一點,暫時笑禪用一台電腦連接兩台顯示器便顯示不同,內容的時候先對顯卡的顯卡驅動進行升級,防止在使用的過程中出現滑鼠操作卡頓的現象
怎樣確定顯卡知是否支持?雙顯示器連接
顯卡後面同時擁有高清介面,數字介面,或者是模擬介面最少兩個介面以上
聽我的,不用買上面任何硬體,去淘寶買一個aster 多屏軟體,如果win7 網上有免費破解的,不光能實現你的所有需求,還能同時連2套滑鼠鍵盤,當2台電腦用,你老婆看片子購物,你打 游戲 。
為什麼我的另一個連電視用拓展不能顯示呢?但是同步顯示可以的!
拖機卡!裝在主機箱里的,會另外拓展出來顯示器介面和鍵盤滑鼠介面!兩套鍵盤滑鼠顯示器是獨立操作的!
直接在系統裡面Windows鍵加P有擴展復制
③ 有哪些it程序員的必備神器
URL Decoder/Encoder:https://meyerweb.com/eric/tools/dencoder/ 特別實用的一個用來處理URL編碼和解碼的小工具,你甚至可以直接將這個頁面的源代碼保存下來,這樣不需要連接上網也可以離線使用。附送的一個隱藏功能就是當你從任何地方拷貝信息過來的時候,它會自動去除拷貝過來的格式化信息,小編自己基本上每天都會使用這個小工具復制粘貼各種信息。
iTerm2是一款完全免費的開源軟體,可以完全替代MacOS的終端。iTerms功能強大,使用方便,可以讓你輕松且高效地管理和定製化你的工作流程。iTerm2的一些特色功能包括:標簽變色,智能選中,自動補齊,全屏展示所有的 tab並支持搜索(Exposé Tabs),豐富的快捷操作等。
Textpad這款工具具有無限制的撤銷/重做功能,並且能夠編輯超大文件,文件上限是系統虛擬內存大小。
Octotree:https://www.octotree.io/Github是目前使用最廣泛的版本控制工具,然而通過瀏覽器訪問Github的體驗並不是那麼友好,特別是當我們需要不斷地訪問不同文件夾裡面的文件的時候。Octotree正是這樣一款瀏覽器插件,它提供了類似IDE的便於訪問的代碼目錄樹,能夠提高我們在Github上工作效率。
Wireshark:這個工具可以用來監控機器上的TCP、HTTP等各層級的網路通信。作為後端開發,如果想看前端發來的請求到底都包含了哪些信息,又沒有前端的調試環境的話,使用Wireshark監控HTTP請求是很好的解決方案。自己在程序中發HTTP請求時,也可以使用它來檢查發出的HTTP請求是否符合自己的預期。
Mermaid:這個工具可以使用腳本語言直接渲染出流程圖、時序圖、甘特圖,寫文檔簡單快捷。免拖拽,免排版,格式控制統一。腳本也便於存放修改,樣式可以復用。還可以使用插件集成如Markdown編輯器,進行實時預覽。
spectacle:Mac free source 窗口控制工具,拖拽窗口到屏幕邊緣resize,也可以自定義快捷鍵。用起來跟Windows上面一樣。相比較於Moom,SizeUp,Divvy,spectacle支持滑鼠拖拽到邊緣resize,非常便利。
Tmux:一個虛擬終端可以管理多個會話,窗口和面板。執行 tmux 命令時就開啟了一個服務並創建了一個會話,窗口和面板。支持分屏,同時處理多個操作。不受斷網影響,避免丟失重要工作進度。方便演示與協作,支持結對編程。
Caniuse:https://caniuse.com/#home 通過這個網站,用戶能夠查詢主流瀏覽器特定版本對HTML,CSS和JS的支持情況。並且最重要的是它「免費」!
Visual Studio Code:這是微軟出品的IDE工具,跨平台(Linux,Mac,Windows)。輕量級內存佔用,品質穩定且免費。同時內置Git版本控制功能。值得一提的是插件生態豐富,安裝插件簡單,通過插件可以增加更豐富的語言支持、主題定製、文本自動格式化等能力。
④ 如何學會編程-程序員快速編程必備的利器
呵呵,除非你是天才再考慮快速這一說,程序員的經驗都是一行一行代碼,一個一個項目積累起來的.
⑤ 程序員必備技能-git 不會到還有人不會用吧,不會吧不會吧
版本控制 :版本控制最重要的作用是記錄一個文件的修改 歷史 記錄,並且根據該記錄可以切換到對應的 歷史 版本,這個也是由個人開發到團或改隊開發重要的工具。
集中式版本控制系統 :具有一個統一的中央伺服器,裡面存放著項目的源碼。各個客戶端都從該伺服器中拉取代碼和上傳自己編寫的代碼到伺服器中。
優點:各個客戶端可以查看其他客戶端在該項目中做了什麼,一定程度上了解項目的進度。同時,管理員可以控制各個程序員的許可權。
缺點:無法應對中央伺服器的單點故障問題,當中央伺服器宕機後,各個客戶端都不能提交代碼和拉取代碼,同時在宕機的期間,做不到版本的 歷史 記錄。
分布式版本控制系統 :每個客戶端都是一個版本庫(本地庫),各個客戶端維護自己的版本 歷史 記錄。各個客戶端的協作是通過使用遠程庫(GitHub等)進行的,push把代碼推送到遠程庫中,pull把遠程庫的代碼拉取下來。
優點:解決了集中式版本控制的缺點。在遠程庫宕機的情況下(雖然說這個概率極低),客戶端還是能進行開發的,因為版本的控制是在本地進行的。姿團圓同時,每個客戶端保存的是整個項目,包括 歷史 記錄,使得更跡塌加安全。
Git的工作機制
代碼託管中心(遠程庫) :
底層:head指針指向分支,分支指針指向版本號。當版本號發生變化時,分支指針指向對應的版本號
(1)配置git的忽略文件
(2)在idea中配置git
(3)初始化項目
⑥ 你身邊的程序員用什麼電腦,mac還是thinkpad
計科專業從事軟體開發多年,程序員選擇電腦未必都去選擇mac或者thinkpad,早些年大家對程序員對thinkpad還是比較有感覺,後來聯想拿下這個品牌之後明顯的感覺少了許多,其實很多程序員對於mac的極致體驗還是情有獨鍾,但想買未必真的去落實買,畢竟高出市場價位還是有一定的距離,特別是一些上了年紀的程序員都會選擇一般品牌的筆記本,倒是很多年輕的程序員一般都是選擇mac,未來畢竟是越來越個性的時代。
大部分程序員對筆記本的要求主要是響應速度,基於這一點未必真的選擇什麼牌子的筆記本,配置是選擇電腦很重要的一個因素,外界對於程序員的了解還是存在很多的誤解,覺得這個職業存在著很多神秘感,特別是覺得程序員就該有自己的特殊鍵盤,程序員就是敲代碼又不是為了專業鍵盤玩 游戲 ,好在國內程序員的數量已經百萬之眾,不像以前那麼稀有,而且在二三線城市已經慢慢散開了,也就是講程序員已經不是一線城市專有的許可權,這樣更多真實的程序員展示在大眾的面前。
外界對於程序員還有一些常見的誤解,做程序的無所不能,丟了QQ號或者在網路上賭博輸了錢就可以找個程序員給找回來的這種想法,在身邊人還是大有人在,而且還會說到作為一個程序員這點都不懂,本人在現實中經歷了很多次這種情況,電腦壞了找程序員來修,電視壞了找程序員來修等等,在很多人眼中程序員就是無所不能的存在,最讓人討厭的是媳婦每次問word或者excel的使用上規則,先不要說了解不了解,最後扔下一句話是假程序員。
外界可能都會認為程序員的電腦配置除了mac就是thinkpak,在現實中使用這兩個牌子的程序員不在少數,但也有很大一部分選擇別的品牌,程序員主要任務是編寫高質量的代碼,不是講有了這兩個牌子才能寫出高質量代碼,再者說了程序員很多寫電腦的筆記本基本上都是單位配置的,單位配置什麼就用什麼,用個人電腦寫代碼的畢竟還是少數,而且很多單位喜歡用戴爾的牌子,這些都不是程序員所能決定的,由於外界的不理解對程序員的誤解現象還在加劇。
其實用什麼牌子的電腦對於程序員來講都不是什麼難事,如果遇到一個不懂技術的領導或者老闆才是程序員最大的悲哀,有時候做的努力別人認為成無用功,而且老闆可能覺得一個功能只要實現了就沒啥問題了,但事實是穩定的程序是調試出來的,所以很多老闆覺得程序員的能力不行,所以如果遇到不尊重技術的老闆,基本上在這種公司呆的時間都不會太長,畢竟任何技術類的工作都需要沉澱,都需要市場的打磨驗證,不可能什麼事情一蹴而就,這可比選擇什麼樣子的電腦品牌要重要的多,希望能幫到你。
8年Mac用戶,因為自帶終端,所以,就環境這一項來說,Mac優勢明顯。另外,現在Python流行,Mac也是有Python環境的,再加一分,還有,開發iOS,不要說了吧,Mac是必要工具,另外,Mac系統的機制和win不一樣,一年不關機都一樣,更沒有資料不要c盤這種雞肋需求。所以選擇Mac是正確的,剛才說這么多,都是是廢話,就一點,漂亮就夠了
我們這邊的猿人都是些能用鍵盤解決的,絕不會去碰滑鼠和觸板。所以都只用鍵盤帶桿的。
如果看到哪位用鍵盤不全的macbook寫代碼,那一定是正在找自虐的猴子
⑦ 程序員管理制度
會計電算化內部管理制度
第一章 總 則
一、
會計電算化管理是會計電算化工作的重要內容,為推動集團公司會計電算化工作的健康發展,保證會計信息處理和存儲的合法、安全、准確、可靠,根據>和財政部>、財政部>、財政部>以及廣州市財政局會計電算化的有關規定,特製定本管理辦法。
二、開展會計電算化工作,是促進會計基礎工作規范化和加強財務管理水平,高經濟效益的重要手段和有效措施。各單位要把會計電算化作為提高會計工作質量和建立現代企業制度的一項要工作來抓。
三、逐步提高會計人員的電算化操作水平,使一部分會計人員能夠負責會計軟體的維護,並培養部分會計人員逐步掌握會計電算化數據分析工作。
四、講求效益,處理好及時更新技術設備與勤儉節約的關系,既不盲目追求最新技術和先進設備,也不忽視技術的發展趨勢,造成設備過快陳舊過時。
五、統一應用財務管理軟體。為適應財務管理網路化,提高企業管理水平的要,我集團公司所屬單位統一採用「金蝶k3系統」作為財務管理軟體。並為以後與其他信息系統的聯網做好准備工作,逐步建立以會計電算化為核心的集團公司信息管理系統,做到單位內部信息資源共享,充分發揮會計電算化在經營管理中的作。
第二章 替代手工記賬驗收條件
一、
採用電子計算機替代手工記賬,是指應用會計軟體輸入會計數據,由電子計算機對會計數據進行處理,並列印輸出會計資料。替代手工記賬是會計電算化的基本目標。
二、集團公司獲得市財政局授權成立會計電算化驗收小組,自行驗收集團公司所屬單位的會計電算化工作並報市財局會計處批准。
三、替代手工記賬的單位,應具備以下條件;
1、 配備了「金蝶k3系統」財務軟體、相應的計算機硬體及機房空調設備;
2、
配備了相應的會計電算化工作人員。所有會計從業人員必須具備會計電算化初級培訓資格,使用網路財務軟體單位必須至少具備一名以上會計電算化中級維護員;
3、 執行集團公司內部管理制度;
4、
「金蝶k3系統」(下稱k3系統)與原總公司自行開發的會計核算軟體(以下稱舊軟體)或手工帳表(未電算化單位)並行3個月以上,且新舊核算軟體的結果數據相一致;如果新舊軟體核算結果不一致,並且不一致原因不屬人為錯誤,可由專人查明原因,並向驗收小組提供書面報告;
5、 新舊軟體並行期間,新舊軟體所有核算結果會計資料都必須裝訂成冊,作為會計檔案保存,並作為驗收的主要依據。
6、 記賬憑證類別使用統一記賬憑證,以適應會計電算化工作的需要;
7、 提前一周填寫廣州市財政局會計處規定的標准格式申請表向集團公司會計電算化驗收小組提出書面申請。
第三章 會計電算化崗位責任制
一、 建立會計電算化崗位責任制,要明確每個工作崗位的職責范圍,切實做到「事事有人管,人人有專責,辦事有要求,工作有檢查」。
二、會計電算化崗位可設電算主管、軟體操作員、審核員、電算維護員、電算審查員、數據分析員和出納崗位、檔案管理員。
1、 電算主管:全面負責集團公司會計電算化工作,制訂電算化發展規劃、總體方案及操作人員的許可權控制;
2、
軟體錄入員:編制記賬憑證,並負責記賬憑證和原始憑證等會計數據的輸入工作,輸出記賬憑證、會計賬簿、報表,進行部分會計數據處理工作,要求達到會計電算化初級知識培訓的水平;
3、
審核員:負責對輸入計算機的會計數據(記賬憑證和原始憑證等)進行審核,操作會計軟體登記機內賬簿,對列印輸出的賬簿、報表進行確認;
4、
電算維護員:負責保證計算機硬體、軟體的正常運行,管理機內會計數據;對軟體所需的維護和升級負責同軟體供應商進行聯絡;對財務部門無法解決的硬體問題負責同計算機中心聯系;
5、 電算審查員:負責監督計算機及財務軟體系統的運行,防止利用計算機進行舞弊,此崗位由計算機中心和審計室有關人員兼任;
6、 數據分析員:負責對計算機的會計數據進行分析,提供有關分析資料供領導決策參考。
7、 出納:只能使用「現金管理」模塊。
8、 檔案管理員:負責財務軟體和會計資料檔案的管理。
三、各單位可根據實際情況,在不違反內部牽制制度的前提下,交叉設置各崗位,但要保持相對穩定。出納只能使用「現金管理」模塊,錄入員和審核員必須分設。
第四章 會計電算化操作管理制度
一、 明確規定上機操作人員對財務軟體的操作工作內容和許可權,對操作密碼要嚴格管理,杜絕未經授權人員操作財務軟體;
二、操作人員離開機房前,應執行相應命令退出財務軟體;
三、凡需要修改財務軟體,必須書面提出修改理由、修改內容,報集團公司財務部,由財務部統一向金蝶公司協商;
四、一切修改操作必須在界面菜單下操作,嚴禁擅自打開資料庫強行修改。
五、審核通過或已登帳的機內憑證,系統不提供修改功能。發現已經錄入並審核通過或已登帳的記賬憑證有誤時,只能採用留有痕跡的修改。
第五章 計算機硬體管理制度
一、
計算機硬體及機房網路設備由具有電腦硬體基礎知識的程序員負責管理,集團公司電腦室設兼職計算機病毒監察員對整個集團公司的計算機病毒進行監測。
二、
計算機房工作時必須自覺保持清潔,不得將與工作無關的其他物品(尤其是對電腦正常工作有害的物品及易燃物品)帶入電腦機房。嚴禁在電腦機房內吸煙。嚴禁隨意拔插電腦機房的電源設備。
三、 電腦機房必須配備空調設備,保持適當的溫度、濕度環境。
四、
上機前應首先檢查電源和設備運行是否正常,如發現問題應及時報告,經過電算維護員檢查認可、才能使用。尤其是在計算機設備發生嚴重故障時,不得隨意自行檢修,應及時報告電腦室,等候檢修。
五、 限定伺服器操作權,不得隨意改變伺服器的設置。
六、 遇到突發性停電時,應立即退出系統、關機、關電源;
七、 下班前,必須檢查機器設備是否已關好,關切斷所有電源。
第六章 軟體和數據管理制度
一、會計核算軟體必須有獨立的硬碟或子目錄。不得與其他軟體混淆放置;
二、計算機硬體和軟體出現故障時,電算維護員在確認有關數據已作備份後,可進行排除障礙的有關措施;如無法解決,可根據情況通知計算機中心或金蝶公司有關人員,尋求解決辦法;
三、軟體操作員根據審核通過的原始憑證編制記賬憑證並及時列印,附上原始憑證並經審核員進行二次審核正確後存放保管,以備裝訂存檔;
四、每次輸入的會計憑證都必須備份存檔,月底結賬後即應把當月會計數據備份入磁碟或光碟中儲存管理;
五、科目匯總可以分期或按月進行,其中,八欄式本期科目匯總表可替代總賬賬簿使用;
六、現金、銀行存款日記賬按月列印;其他賬簿每年列印兩次:第一次在上半年結束後30天內列印;第二次在年度結束後45天內列印。根據實際情況,發生業務少的,可滿頁列印,但應保證每年至少列印一次。
七、會計報表的編制、列印輸出要根據財務制度的規定設置公式編制。各種報表需經軟體操作員、審核員、電算主管簽章確認後方為正式報表。報表必須通過設定取數公式編制,不得用非正常手段進行填制;報表的數據必須與結賬結果相符,表內表間數據的勾稽關系必須正確無誤,取數公式一經設定,必須保持不變,如需修改,需保存書面報告。
八、輸出數據未經本單位財務主管許可,嚴禁擅自攜帶外出和外借。
九、確保會計數據和會計軟體的安全保密,防止對數據和軟體的修改;對磁性介質存放的數據要保存雙備份:一份存放檔案室,一份存放財務部;
十、對正在使用的應用會計核算軟體進行修改、升級和計算機硬體設備進行更換等工作,必須保證實際會計數據的連續和安全;由電算維護員辦理審批手續,經過電算主管和計算機中心有關負責人同意後,由電算主管、電算維護員、計算機有關人員進行監督,並要求軟體供應商協同操作;
十一、為防止外來病毒感染,在未進行有效病毒檢測前,任何人不得使用外來磁碟在會計核算用電腦上進行任何操作。不得隨意將會計用磁碟在其他電腦上操作。
十二、會計檔案包括會計資料和會計軟體。存檔的會計檔案,要每年進行檢查、復制,防止由於磁性介質損壞而使會計檔案丟失;
第七章 附則
一、本「管理制度」適用於集團公司正式實行會計電算化的單位。由財務部負責解釋。
二、本制度在執行時如與上級有關財務制度和會計電算化規定有出入,則以上級規定為准。
三、本制度自通過驗收之日起執行。
⑧ 布隆過濾器詳解
布隆過濾器 (英語:Bloom Filter)是 1970 年由布隆提出的。它實際上是一個很長的二進制向量和一系列隨機映射函數。主要用於判斷一個元素是否在一個集合中。
通常我們會遇到很多要判斷一個元素是否在某個集合中的業務場景,一般想到的是將集合中所有元素保存起來,然後通過比較確定。鏈表、樹源迅、散列表(又叫哈希表,Hash table)等等數據結構都是這種思路。但是隨著集合中元素的增加,我們需要的存儲空間也會呈現線性增長,最終達到瓶頸。同時檢索速度也越來越慢,上述三種結構的檢索時間復雜度分別為 , , 。
這個時候,布隆過濾器(Bloom Filter)就應運而生。
了解布隆過濾器原理之前,先回顧下 Hash 函數原理。
哈希函數的概念是:將任意大小的輸入數據轉換成特定大小的輸出數據的函數,轉換後的數據稱為哈希值或哈希編碼,也叫散列值。下面是一幅示意圖:
所有散列函數都有如下基本特性:
但是用 hash表存儲大數據量時,空間效率還是很低,當只有一個 hash 函數時,還很容易發生哈希碰撞。
BloomFilter 是由一個固定大小的二進制向量或者點陣圖(bitmap)和一系列映射函數組成的。
在初始狀態時,對於長度為 m 的位數組,它的所有位都被置為0,如下圖所示:
當有變數被加入集合時,通過 K 個映射函數將這個變數映射成點陣圖中的 K 個點,把它們置為 1(假定有兩個變數都通過 3 個映射函數)。
查詢某個變數的時候我們只要看看這些點是不是都是 1 就可以大概率知道集合中有沒有它了
為什麼說是可能存在,而不是一定存在呢?那是因為映射函數本身就是散列函數,散列函數是會有碰撞的。
布隆頃凳過濾器的誤判是指多個輸入經過哈希之後在相同的bit位置1了,這樣就無法判斷究竟是哪個輸入產生的,因此誤判的根源在於相同的 bit 位被多次映射且置 1。
這種情況也造成了布隆過濾器的刪除問題,因為布隆過濾器的每一個 bit 並不是獨占的,很有可能多個元素共享了某一位。如果我們直接刪除這一位的話,會影響其他的元素。(比如上圖中的第 3 位)
相比於其它的數據結構,布隆過濾器在空間和時間方面都有巨大的優勢。布隆過濾器存儲空間和插入/查詢時間都是常數 ,另外,散列函數相互之間沒有關系,方便由硬體並行實現。布隆過濾器不需要存儲元素本身,在某些對保密要求非常嚴格的場合有優勢。
布隆過濾器可以表示全集,其它任何數據結構都不能;
但是布隆過濾器的缺點和優點一樣明顯。誤算率是其中之一。隨著存入的元素數量增加,誤算率隨之增加。但是如果元素數量太少,則使用散列表足矣。
另外,一般情況下不能從布隆過濾器中刪除元素。我們很容易想到把位數組變成整數數組,每插入一個元素相應的計數器雹乎此加 1, 這樣刪除元素時將計數器減掉就可以了。然而要保證安全地刪除元素並非如此簡單。首先我們必須保證刪除的元素的確在布隆過濾器裡面。這一點單憑這個過濾器是無法保證的。另外計數器回繞也會造成問題。
在降低誤算率方面,有不少工作,使得出現了很多布隆過濾器的變種。
在程序的世界中,布隆過濾器是程序員的一把利器,利用它可以快速地解決項目中一些比較棘手的問題。
如網頁 URL 去重、垃圾郵件識別、大集合中重復元素的判斷和緩存穿透等問題。
布隆過濾器的典型應用有:
知道了布隆過濾去的原理和使用場景,我們可以自己實現一個簡單的布隆過濾器
分布式環境中,布隆過濾器肯定還需要考慮是可以共享的資源,這時候我們會想到 Redis,是的,Redis 也實現了布隆過濾器。
當然我們也可以把布隆過濾器通過 bloomFilter.writeTo() 寫入一個文件,放入OSS、S3這類對象存儲中。
Redis 提供的 bitMap 可以實現布隆過濾器,但是需要自己設計映射函數和一些細節,這和我們自定義沒啥區別。
Redis 官方提供的布隆過濾器到了 Redis 4.0 提供了插件功能之後才正式登場。布隆過濾器作為一個插件載入到 Redis Server 中,給 Redis 提供了強大的布隆去重功能。
在已安裝 Redis 的前提下,安裝 RedisBloom,有兩種方式
直接編譯進行安裝
使用Docker進行安裝
使用
布隆過濾器基本指令:
我們只有這幾個參數,肯定不會有誤判,當元素逐漸增多時,就會有一定的誤判了,這里就不做這個實驗了。
上面使用的布隆過濾器只是默認參數的布隆過濾器,它在我們第一次 add 的時候自動創建。
Redis 還提供了自定義參數的布隆過濾器, bf.reserve 過濾器名 error_rate initial_size
但是這個操作需要在 add 之前顯式創建。如果對應的 key 已經存在,bf.reserve 會報錯
我是一名 javaer,肯定還要用 Java 來實現的,Java 的 Redis 客戶端比較多,有些還沒有提供指令擴展機制,筆者已知的 Redisson 和 lettuce 是可以使用布隆過濾器的,我們這里用 Redisson
為了解決布隆過濾器不能刪除元素的問題,布穀鳥過濾器橫空出世。論文《Cuckoo Filter:Better Than Bloom》作者將布穀鳥過濾器和布隆過濾器進行了深入的對比。相比布穀鳥過濾器而言布隆過濾器有以下不足:查詢性能弱、空間利用效率低、不支持反向操作(刪除)以及不支持計數。
由於使用較少,暫不深入。
https://www.cs.cmu.e/~dga/papers/cuckoo-conext2014.pdf
http://www.justdojava.com/2019/10/22/bloomfilter/
https://www.cnblogs.com/cpselvis/p/6265825.html
https://juejin.im/post/5cc5aa7ce51d456e431adac5
⑨ 一個程序員在公司沒有資料庫許可權意味著什麼
資料庫,一般軟體開發中都會用到,關於它的許可權問題是這樣的:一個公司的一個軟體產品,其實在不同的研發上線的不同階段,資料庫是獨立的。這個很好理解,開發環境程序員可以隨便改。線上環境可不是誰都有許可權的。
不同的公司,這個資料庫管理的方式也是不一樣的,僅從我的經歷上來回答這個問題。如果更多疑問可以繼續探討。