用戶想在Windows 10系統上搜索文件、文件夾或應用程序時,總是在Windows搜索欄上鍵入要搜索的內容,在搜索結果中,既有本地搜索的內容,還會看到從網上搜索的內容,這些Web建議基本上是用Bing搜索查詢的,單擊任何一個都將帶打開Edge瀏覽器上的Bing搜索引擎。
這個搜索結果有時會很煩人,尤其是在搜索本地文件時。而且大多數人甚至根本不使用Edge進行搜索。
這種搜索有時可能會有所幫助,但很多時候Windows搜索優先于Bing查詢,而不是本地搜索,這對任何人都是不可接受的。
下面我們就來了解如何從Windows 10完全刪除Bing搜索。
警告:由于在本文中,我們將修改Windows注冊表編輯器,因此建議在進行修改之前對其進行備份。
需要說明的是,用Bing還會禁用快速計算、轉換和你可能正在使用的其他小技巧,如果你需要使用這些快速技巧,請不要禁用Bing。
1.按Windows + R鍵,打開“運行”對話框,輸入regedit,然后按Enter鍵。
2.在注冊表編輯器中導航到以下位置:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search
3.在左窗格上,右鍵單擊“search”文件夾,選擇“新建”->“ DWORD(32位)值”,將DWORD命名為“AllowSearchToUseLocation”。
4.雙擊它,并確保將它數據值設置為0。
5.再次右鍵單擊“search”文件夾,新建一個“DWORD(32位)值”,命名為“BingSearchEnabled”,將它的值設為0。
6.現在,在“search”文件夾下搜索“CortanaConsent”,并將其值設置為0。如果找不到“CortanaConsent”,可以使用上述兩個DWORD鍵的步驟創建一個。
7.關閉注冊表編輯器,然后重新啟動系統。
這個操作之后,就已經從Windows搜索中成功禁用了Bing。要進行檢查,請在計算機重新啟動后在Windows搜索中搜索任何查詢,你只會看到本地搜索,如果在本地沒有找到與你的搜索相關的內容,它將僅顯示“未找到查詢結果”。
以上就是從Windows開始菜單搜索中完全刪除Bing的方法。請嚴格按照上面的步驟操作,以免損壞其他注冊表。現在,回答一些與Bing搜索有關的常見問題解答。
1.如何從Windows 10中永久刪除Bing?
要從Windows 10中永久刪除Bing,請遵循本文中提供的步驟,該方法已在Windows 10 1909版上進行了測試。
2.如何再次啟用Bing?
可以通過刪除新創建的DWORD鍵(“AllowSearchToUseLocation”和“BingSearchEnabled”)輕松地再次啟用Bing 。另外,將“CortanaConsent” 的值數據設置為1。
3.是否應該在Windows中保持Bing搜索啟用?
這取決于用戶。如果你使用快速搜索以及使用Windows搜索進行快速計算和轉換之類的選項,則可以保持啟用Bing。基于性能的禁用將稍微減少系統的負載,因為搜索將僅限于本地。
更多windows 10操作系統使用技巧,請關注→→#win10玩機技巧#
想了解更多精彩內容,請關注 @微課傳媒
頭條號【微課傳媒】專注軟件分享,如果你喜歡玩軟件,歡迎關注、評論、收藏、轉發。
Redis中沒有批量刪除特定前綴key的指令,但我們往往需要根據前綴來刪除,那么究竟該怎么做呢?可能你一通搜索后會得到下邊的答案
redis-cli --raw keys "ops-coffee-*" | xargs redis-cli del
直接在linux下通過redis的keys命令匹配到所有的key,然后調用系統命令xargs來刪除,看似非常完美,實則風險巨大
因為Redis的單線程服務模式,命令keys會阻塞正常的業務請求,如果你一次keys匹配的數量過多或者在del的時候遇到大key,都會直接導致業務的不可用,甚至造成redis宕機的風險
所以我們在生產環境中應當避免使用上邊的方法,那有什么優雅的方法來解決呢?SCAN!
SCAN介紹及使用
Redis從2.8版本開始支持scan命令,SCAN命令的基本用法如下:
SCAN cursor [MATCH pattern] [COUNT count]
cursor: 游標,SCAN命令是一個基于游標的迭代器,SCAN命令每次被調用之后,都會向用戶返回一個新的游標,用戶在下次迭代時需要使用這個新游標作為SCAN命令的游標參數,以此來延續之前的迭代過程,直到服務器向用戶返回值為0的游標時,一次完整的遍歷過程就結束了
MATCH: 匹配規則,例如遍歷以ops-coffee-開頭的所有key可以寫成ops-coffee-*,中間包含-coffee-的可以寫成*-coffee-*
COUNT: COUNT選項的作用就是讓用戶告知迭代命令,在每次迭代中應該從數據集里返回多少元素,COUNT只是對增量式迭代命令的一種提示,并不代表真正返回的數量,例如你COUNT設置為2有可能會返回3個元素,但返回的元素數據會與COUNT設置的正相關,COUNT的默認值是10
以下是一個SCAN命令的迭代過程示例:
127.0.0.1:6379> scan 0 MATCH ops-coffee-*
1) "38"
2) 1) "ops-coffee-25"
2) "ops-coffee-19"
3) "ops-coffee-29"
4) "ops-coffee-10"
5) "ops-coffee-23"
6) "ops-coffee-5"
7) "ops-coffee-14"
8) "ops-coffee-16"
9) "ops-coffee-11"
10) "ops-coffee-15"
11) "ops-coffee-7"
12) "ops-coffee-1"
127.0.0.1:6379> scan 38 MATCH ops-coffee-* COUNT 1000
1) "0"
2) 1) "ops-coffee-13"
2) "ops-coffee-9"
3) "ops-coffee-21"
4) "ops-coffee-6"
5) "ops-coffee-30"
6) "ops-coffee-20"
7) "ops-coffee-2"
8) "ops-coffee-12"
9) "ops-coffee-28"
10) "ops-coffee-3"
11) "ops-coffee-26"
12) "ops-coffee-4"
13) "ops-coffee-31"
14) "ops-coffee-8"
15) "ops-coffee-22"
16) "ops-coffee-27"
17) "ops-coffee-18"
18) "ops-coffee-24"
19) "ops-coffee-17"
SCAN命令返回的是一個包含兩個元素的數組,第一個數組元素是用于進行下一次迭代的新游標,而第二個數組元素則是一個數組,這個數組中包含了所有被迭代的元素
上面這個例子的意思是掃描所有前綴為ops-coffee-的key
第一次迭代使用0作為游標,表示開始一次新的迭代,同時使用了MATCH匹配前綴為ops-coffee-的key,返回了游標值38以及遍歷到的數據
第二次迭代使用的是第一次迭代時返回的游標,也即是命令回復第一個元素的值38,同時通過將COUNT選項的參數設置為1000,強制命令為本次迭代掃描更多元素
在第二次調用SCAN命令時,命令返回了游標0,這表示迭代已經結束,整個數據集已經被完整遍歷過了
KEYS命令的時間復雜度為O(n),而SCAN命令會將遍歷操作分解成m次時間復雜度為O(1)的操作來執行,從而解決使用keys命令遍歷大量數據而導致服務器阻塞的情況,使用下邊的指令可以達到優雅刪除的目的:
redis-cli --scan --pattern "ops-coffee-*" | xargs -L 2000 redis-cli del
其中xargs -L指令表示xargs一次讀取的行數,也就是每次刪除的key數量,一次讀取太多xargs會報錯
其他幾種數據結構的優雅刪除
類似的SCAN命令,對于Redis不同的數據類型還有另外幾個SSCAN、HSCAN和ZSCAN,使用方法類似:
> sscan ops-coffee 0 MATCH v1*
1) "7"
2) 1) "v15"
2) "v13"
3) "v12"
4) "v10"
5) "v14"
6) "v1"
與SCAN命令不同的是這幾個命令需要多加一個key的參數,例如上邊的ops-coffee
對于一個大的set key,借助sscan使用下邊的代碼可以實現優雅的批量刪除:
import redis
def del_big_set_key(key_name):
r=redis.StrictRedis(host='localhost', port=6379)
# count表示每次刪除的元素數量,這里每次刪除300元素
for key in r.sscan_iter(name=key_name, count=300):
r.srem(key_name, key)
del_big_set_key('ops-coffee')
對于一個大的hash key,則可借助hscan使用下邊的代碼實現優雅的刪除:
import redis
def del_big_hash_key(key_name):
r=redis.StrictRedis(host='localhost', port=6379)
# hscan_iter獲取出來的結果是個元祖,下邊hdel刪除用key[0]取到key
for key in r.hscan_iter(name=key_name, count=300):
r.hdel(key_name, key[0])
del_big_hash_key('ops-coffee')
對于大的有序集合的刪除就比較簡單了,直接根據zremrangebyrank排行范圍刪除
import redis
def del_big_sort_key(key_name):
r=redis.StrictRedis(host='localhost', port=6379)
while r.zcard(key_name) > 0:
# 判斷集合中是否有元素,如有有則刪除排行0-99的元素
r.zremrangebyrank(key_name, 0, 99)
del_big_sort_key('ops-coffee')
big list大列表的刪除可以參考上邊這個方法,通過llen判斷數量,然后ltrim移除范圍內的元素,這里不贅述
至此對于Redis的五中數據結構大key的優雅刪除就全部實現了,生產環境擇優使用。