最近在阿里雲服務器上安裝了redis,這個過程中遇到了比較頭疼的問題,拿來這裏和大家分享一下哈
這裏安裝的是redis官方的最新版本redis-3.0.3
Linux安裝用.tar.gz包吧,具體可以到http://www.redis.cn/download.html 這裏下載
以下是編譯安裝步驟
解壓包
#tar -zxf redis-3.0.3.tar.gz
創建安裝目錄[可選]
#mkdir [-p] /usr/local/redis
進入redis-3.0.3目錄
#cd redis-3.0.3
#make
#make test
安裝到指定安裝目錄(注意,若不指定PREFIX安裝目錄將會出現問題,下面解釋)
#make PREFIX=/usr/local/redis install
這個時候再進入/usr/local/redis中會發現多了一個bin目錄,裏面生成多個可執行文件,分別是redis-server、redis-cli、redis-benchmark、redis-check-aof 、redis-check-dump,它們的作用如下:
redis-server:Redis服務器的daemon啓動程序
redis-cli:Redis命令行操作工具。也可以用telnet根據其純文本協議來操作
redis-benchmark:Redis性能測試工具,測試Redis在當前系統下的讀寫性能
redis-check-aof:數據修復
redis-check-dump:檢查導出工具
創建配置文件文件夾
#mkdir /usr/local/redis/etc
進入redis-3.0.3目錄,複製redis.conf文件到/usr/local/redis/etc
#cp redis.conf /usr/local/redis/etc/redis.conf
修改系統配置文件,執行命令
a) echo vm.overcommit_memory=1 >> /etc/sysctl.conf
b) sysctl vm.overcommit_memory=1 或執行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
使用數字含義:
0,表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1,表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2,表示內核允許分配超過所有物理內存和交換空間總和的內存
配置系統環境變量PATH
#vi /etc/profile
將export PATH=$PATH:/usr/local/redis/bin 寫入文件末尾
若想立即生效(系統重啓自動生效),則可以進入/etc目錄中執行 ./profile,若沒辦法執行,一般用chmod將profile的權限設置爲777即可
啓動redis(此處指定配置文件),若沒有添加redis執行文件所在目錄,可進入/usr/local/redis/bin 目錄執行./redis-server /usr/local/redis/etc/redis.conf 也可啓動redis
#redis-server /usr/local/redis/etc/redis.conf
運行redis命令操作工具redis-cli,若順利連接,這redis開啓成功,也可以使用ps -ef | grep redis 查看redis進程是否存在
#redis-cli
出現“127.0.0.1:6379>”說明啓動成功,祝賀你,可以使用redis了
當然,我安裝的過程斷斷續續持續了兩天的時間,主要遇到這個問題
安裝的時候沒有指定PREFIX安裝目錄,所以redis的可執行文件(redis-server等)被默認安裝到了/usr/local/bin 目錄下了,這時候無論怎麼放配置文件,執行 redis-server /usr/local/redis/etc/redis.conf
時都不成功(用ps -ef | grep redis 查看redis進程根本就沒開啓),直接執行redis-server 警告“Warning:
no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf”,這很正常,說明我們沒有指定配置文件,redis選擇了默認的配置文件。但是這怎麼行啊,我們可是要自己配置這個文件的呢!後來跟一個朋友在討論的過程中發現了這個問題,所以才得以解脫,配置文件才能加載成功。所以大家安裝的時候請注意指定PREFIX!!!這個問題的解決也得益於我之前編譯安裝PHP的經驗!!!因此建議大家多做,多嘗試,沒有解決不了的問題。
關於redis的使用教程,這裏不再贅述,網上又很多教程,可以自行搜索吸收。