今天在一台騰訊雲服務器上安裝redis,解壓后,make 編譯一下,結果報錯*** [adlist.o] Error 127
這個問題的原因是redis是使用C語言編寫的,需要gcc來進行編譯,所以是系統沒有安裝gcc。
按照順序執行以下命令
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
因為gcc依賴很多,都執行一下,以防萬一
重新切換到redis目錄編譯,make 還是報錯:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
這個是因為,jemalloc 重載了linux 下的ANSI C的malloc 和free 函數,解決辦法就是,使用make 編譯時添加參數
make MALLOC=libc
見到Hint: It's a good idea to run 'make test' 😉 則編譯成功
進入redis的src目錄
cd src
./redis-server
啟動redis服務
可以使用./redis-cli 測試客戶端的訪問
最后:
1.切換到redis的安裝目錄,找到redis.conf文件,備份一下
cp redis.conf redis_backup.conf
再修改redis.conf文件中的bind 127.0.0.1 改成bind 0.0.0.0
2.開啟防火牆的端口
centos 7 之前的方法
1.打開端口號:iptables -A INPUT -ptcp --dport 端口號(6379) -j ACCEPT
- 重啟刷新端口號:service iptables restart