說明
編譯 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 。但是注意 gcc 從 4.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 |
---|