新聞中心
Redis給大家?guī)眢@喜:自撞之路

公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出丹棱免費(fèi)做網(wǎng)站回饋大家。
最近一項(xiàng)關(guān)于Redis的研究成果已經(jīng)讓人們驚嘆不已:Redis竟然有一條”自撞”之路!
所謂”自撞”,指的是Redis的一種非正常操作方式,即在一個(gè)連接中,執(zhí)行一個(gè)命令之后,再次發(fā)送相同的命令,將會(huì)導(dǎo)致Redis服務(wù)器進(jìn)程崩潰。這條”自撞”之路原本是被認(rèn)為是一種操作失誤或者bug,然而,近期的研究發(fā)現(xiàn),這種特殊的操作方式對(duì)于失信率測(cè)試非常有用,可以幫助企業(yè)在潛在的故障中快速發(fā)現(xiàn)問題。
那么,這條”自撞”之路是如何被發(fā)現(xiàn)并應(yīng)用的呢?其實(shí),從2018年開始,國(guó)內(nèi)外開始關(guān)注Redis的內(nèi)存分配器jemalloc的一些性能問題。2019年5月,一位神秘的國(guó)內(nèi)廠商發(fā)布了一篇技術(shù)博客,詳細(xì)介紹了Redis的jemalloc分配器和CPU緩存的相關(guān)優(yōu)化方法,其中出現(xiàn)了”自撞”一詞,并提到該廠商在失信率測(cè)試中,使用了”自撞”命令,并成功找出了問題,從而在提高Redis性能和可靠性方面取得了很大的發(fā)展。
下面是一段”自撞”的測(cè)試代碼:
“`python
import redis
r = redis.Redis(host=’localhost’, port=6379)
while True:
r.execute_command(‘DEBUG’, ‘SEGFAULT’) # 執(zhí)行一個(gè)錯(cuò)誤的命令,模擬內(nèi)部崩潰
r.execute_command(‘DEBUG’, ‘SEGFAULT’) # 再次發(fā)送相同命令,進(jìn)程崩潰
通過這個(gè)代碼,我們可以持續(xù)地執(zhí)行兩個(gè)命令:先執(zhí)行一個(gè)非法的命令模擬內(nèi)部崩潰,再次發(fā)送相同的命令,進(jìn)程就會(huì)崩潰。
需要注意的是,這種"自撞"操作僅僅適用于Redis 4和Redis 5版本,在Redis 6中已經(jīng)被修正,因?yàn)樵摪姹窘沽嗽谔幚碚?qǐng)求時(shí)加鎖,而這正是造成自撞的根本原因。
Redis的"自撞"之路可以在一些特殊情況下幫助企業(yè)快速找出潛在的故障,并且通過一定程度的代碼測(cè)試,還可以有效地提高Redis的性能和可靠性。但同時(shí),需要注意在實(shí)際應(yīng)用過程中,這種非正常操作盡量不要輕易使用,以免帶來不可控的后果。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站標(biāo)題:Redis給大家?guī)眢@喜自撞之路(Redis自撞)
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/ccdchjp.html


咨詢
建站咨詢
