CentOS7編譯安裝Redis6.0.9
一、下載源碼包
下載地址:https://redis.io/download
可以在Windows上打開下載地址,在如下界面上選擇穩定版下載源碼包,然后傳到Linux上。
也以在直接在Linux上下載。
curl -O https://download.redis.io/releases/redis-6.0.9.tar.gz
然后解壓下載好的壓縮包,把解壓后的文件夾移動到/usr/local下,並重命名。
tar -xzf redis-6.0.9.tar.gz
mv redis-6.0.9 /usr/local/redis
二、編譯安裝
先下載編譯安裝Redis的依賴,因為Redis是C語言編寫的,所以主要安裝C的編譯環境
yum install gcc g++ gcc-c++ make -y
進入移動重命名后的redis文件夾進行編譯安裝
cd /usr/local/redis
# 開始編譯
make -j 2
編譯安裝過程中出現大量錯誤如下圖所示:
這是因為安裝6版本的Redis需要5.3以上版本的gcc,而先前YUM安裝的gcc默認安裝的是4.8.5版本。
# 查看gcc版本
gcc -v
升級gcc到9版本
yum install centos-release-scl -y
yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils -y
然后啟用gcc 9。我看到有些博客中寫到啟用gcc9的方法如下
# 臨時啟用gcc 9
scl enable devtoolset-9 bash
# 長期啟用gcc 9
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
這種臨時啟用的方法我發現單獨在終端執行沒有問題,不過把它寫到腳本里執行的時候,執行到這一句就會退出腳本,我還不清楚是什么原因。所以在腳本中我直接使用source /opt/rh/devtoolset-9/enable
臨時啟用gcc 9。
執行完畢后gcc升級到9.3.1版本
升級好gcc后重新編譯
# 清除之前編譯的可執行文件及配置文件。
make clean
make -j 2
make install
三、啟動Redis
編譯完成后,在/usr/local/redis/src目錄中多了兩個可執行文件redis-cli和redis-server。
redis-server用於啟動Redis服務
redis-cli是Redis的客戶端
/usr/local/bin目錄中也多了幾個可執行文件
執行redis-server,出現如下界面說明Redis算是裝好了。不過有幾個警告需要處理一下,解決的方法在警告信息中已經給出了。
# 第一個警告的解決方法
echo net.core.somaxconn=511 >> /etc/sysctl.conf
# 第二個警告的解決方法
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
# 使/etc/sysctl.conf生效
sysctl -p
# 第三個警告的解決方法
echo never > /sys/kernel/mm/transparent_hugepage/enabled
之后再重新執行redis-server,可以看到,警告信息消失了。Redis服務順利啟動。
此時Redis服務在前台執行,修改Redis的配置文件,讓Redis服務可以在后台運行
vim /usr/local/redis/redis.conf
將daemonize no改為daemonize yes,然后使用配置文件重新啟動redis
cd /usr/local/bin/
# 啟動redis服務
./redis-server ../redis/redis.conf
# 啟動redis客戶端
redis-cli
打開Redis客戶端,可以成功存儲數據。