redis啟動(dòng)流程介紹
1. 準(zhǔn)備運(yùn)行環(huán)境
* 設(shè)置oom handler,zmalloc分配內(nèi)存失敗時(shí)調(diào)用
* 初始化隨機(jī)種子,用于生成隨機(jī)數(shù)
* 將server參數(shù)初始化為默認(rèn)值
* 創(chuàng)建命令與處理函數(shù)的映射表
2. 解析命令行參數(shù)、loadServerConfig()解析配置文件
* 配置文件會(huì)覆蓋命令行指定的參數(shù)
* 無效的配置項(xiàng)或者不合理的配置值會(huì)導(dǎo)致redis無法正常啟動(dòng)
3. initServer()初始化服務(wù)
* 安裝信號(hào)處理函數(shù)
* 創(chuàng)建共享對象,redis預(yù)分配好常用的對象用于共享,以節(jié)省內(nèi)存
* 根據(jù)maxc lients配置調(diào)整max open files
* 創(chuàng)建全局db字典,每個(gè)db對應(yīng)一個(gè)dict
* 監(jiān)聽網(wǎng)絡(luò)端口,安裝事件處理器
* 如果開啟了aof,打開aof文件
* 創(chuàng)建serverCron定時(shí)器
4. loadDataFromDisk()從rdb或aof文件加載數(shù)據(jù)
* load數(shù)據(jù)出錯(cuò)(比如文件格式亂掉)等會(huì)導(dǎo)致redis不能正常啟動(dòng)
* loading的過程中,redis仍能處理請求,但大部分請求都會(huì)回復(fù)-LOADING錯(cuò)誤
5. aeMain()開始事件循環(huán),接收客戶端請求
監(jiān)聽文件描述符的事件處理函數(shù)初始化為acceptTcpHandler,新建立的連接的事件處理函數(shù)設(shè)置為readQueryFromClient,readQueryFromClient從網(wǎng)絡(luò)連接上讀取請求,解析出請求參數(shù)并處理。
相關(guān)文章
詳解Redis如何優(yōu)雅地實(shí)現(xiàn)接口防刷
這篇文章主要為大家詳細(xì)介紹了Redis優(yōu)雅地實(shí)現(xiàn)接口防刷的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Redis下載部署并加入idea應(yīng)用的小結(jié)
這篇文章主要介紹了Redis下載部署并加入idea應(yīng)用,需要的朋友可以參考下2022-10-10
redis key過期監(jiān)聽的實(shí)現(xiàn)示例
在Redis中,我們可以為Key設(shè)置過期時(shí)間,當(dāng)Key的過期時(shí)間到達(dá)后,Redis會(huì)自動(dòng)將該Key標(biāo)記為已失效,本文就來介紹一下redis key過期監(jiān)聽的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-03-03
淺談redis的過期時(shí)間設(shè)置和過期刪除機(jī)制
本文主要介紹了redis的過期時(shí)間設(shè)置和過期刪除機(jī)制,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Redis結(jié)合Lua腳本實(shí)現(xiàn)分布式鎖詳解
Lua?是一種輕量小巧的腳本語言,用標(biāo)準(zhǔn)C語言編寫并以源代碼形式開放,?本文主要為大家介紹了Redis如何結(jié)合Lua腳本實(shí)現(xiàn)分布式鎖,需要的可以參考下2024-02-02
Redis SETNX命令在Spring Cloud中的分布式鎖用法詳解
在Spring Cloud項(xiàng)目中,使用Java和Redis結(jié)合實(shí)現(xiàn)的分布式鎖可以確保訂單的一致性和并發(fā)控制,通過合理使用鎖的粒度以及注意事項(xiàng),可以減少死鎖問題并提高系統(tǒng)的并發(fā)性能,這篇文章主要介紹了Redis SETNX命令在Spring Cloud中的分布式鎖用法詳解,需要的朋友可以參考下2023-10-10
如何在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖
這篇文章主要介紹了如何在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖,在實(shí)際開發(fā)中有可能會(huì)遇到多個(gè)線程同時(shí)訪問同一個(gè)共享變量,那么上鎖就很重要了,需要的朋友可以參考下2023-03-03
redis中zSet實(shí)現(xiàn)排行榜的使用示例
在工作中,有時(shí)候需要實(shí)現(xiàn)排行榜功能,本文主要介紹了redis中zSet實(shí)現(xiàn)排行榜的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Redis報(bào)錯(cuò)NOAUTH?Authentication?required簡單解決辦法
這篇文章主要給大家介紹了關(guān)于Redis報(bào)錯(cuò)NOAUTH?Authentication?required的簡單解決辦法,Redis無密碼報(bào)錯(cuò)NOAUTH Authentication required的原因是客戶端訪問Redis時(shí)需要提供密碼,但是沒有提供或提供的密碼不正確,需要的朋友可以參考下2024-05-05

