Linux 上編譯 redis-6.0.6


說明

編譯 redis-6.0,要求 C11 編譯器,否則會遇到大量如下所示的錯誤:

server.h:1051:5: 錯誤:expected specifier-qualifier-list before ‘_Atomic’
server.c:1032:31: 錯誤:‘struct redisServer’沒有名為‘logfile’的成員

主要原因是從 redis-6.0 開始的多線程代碼依賴C標准庫中的新增類型 _Atomic 。但是注意 gcc4.9 版本才開始正式和完整地支持 stdatomic(gcc-4.8.5 部分支持),同時需在編譯時指定參數“-std=c11”或“-std=gnu11”。

步驟1:上傳源代碼包

將源代碼包 redis-6.0.6.tar.gz 上傳到目錄 /data/redis/src(其它目錄也可以),然后進入 src 目錄:

步驟2:解壓源代碼包

進入 src 目錄:

cd /data/redis/src

解壓源代碼包:

tar xzf redis-6.0.6.tar.gz

步驟3:編譯依賴

進入目錄 redis-6.0.6:

cd redis-6.0.6

編譯依賴:

make persist-settings

如果不先執行這一步,則在編譯時會遇到如下這樣的錯誤:

zmalloc.h:50:10: 致命錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄

步驟4:編譯 redis-6.0.6

執行 make 即可:

make

步驟5:安裝 redis-6.0.6

這步不是必須的,生產環境一般不會這樣操作。但如果需要,只需執行“make install”即可完成安裝。

make install

默認安裝到目錄“/usr/local”,如果需要安裝到其它目錄,可指定 make 的參數“PREFIX”,如:

make install PREFIX=/usr/local/redis-6.0.6

redis 實用小工具

https://github.com/eyjian/redis-tools


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM