標籤:
在CentOS(Linux)下編譯安裝Redis(V2.8.19)之後,總結的注意事項如下:
下載安裝Redis:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz$ tar xzf redis-2.8.19.tar.gz$ cd redis-2.8.19$ make
TIPS: 可先到官網下載Redis檔案,同時可以查看官網的編譯安裝方法( 傳送門 )。
- 在Redis根目錄下,直接
make
make
成功後,如果需要 make test
,則需要配置TCL8.5/TCL8.6來進行測試
- TCL8.6非預設安裝的時候(CentOS版本偏低),一定要在PATH的路徑中建立檔案串連到tclsh8.6,同時注意,檔案名稱必須是tclsh8.5/tclsh8.6,因為在make test的時候,會使用which尋找8.5或者8.6版本的tcl
- 安裝:直接
make install
,預設安裝在 /usr/local/bin
下,如果需要設定自訂路徑,用 make PREFIX=/usr/local/redis install
來安裝
- 安裝後,預設是沒有設定檔的,需要配置的話,在安裝成功後可以使用utils裡面的
install_server.sh
來設定管理員.
install_server.sh裡面有很多bug,如果不修改你將會發現/etc/init.d/redis_***是無法正常使用的——裡面的設定檔有很多\n,未被轉義.
line 163,177: if [ !`which chkconfig` ]; then
中 !應該和`which chkconfig`之間有個空格沒有出現
line 165: echo
之後應該需要一個-e參數,表示允許使用逸出字元.
- 配置:
- 為了防止記憶體爆滿導致系統崩潰,需要設定/etc/redis/*.cnf中的maxmemory
- 防止報錯,可以調整記憶體配置策略
/etc/sysctl.conf 這個是Redis日誌中可以看到的建議: 添加vm.overcommit_memory=1儲存,並執行:sysctl vm.overcommit_memory=1使之生效/proc/sys/vm/overcommit_memory,這個裡面就是overcommit_memory值,這個可以被上面的設定更新. 0, 表示核心將檢查是否有足夠的可用記憶體供應用進程使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用進程。 1, 表示核心允許分配所有的實體記憶體,而不管當前的記憶體狀態如何。 2, 表示核心允許分配超過所有實體記憶體和交換空間總和的記憶體
在完成之後,可以開啟Redis,測試下是否正常。
下面測試了給testkey賦值為value:
$ redis-cli127.0.0.1:6379>set testkey valueOK127.0.0.1:6379>get testkey"value"127.0.0.1:6379>exit加一個開機啟動的指令碼:github上的:https://gist.github.com/markalanevans/1335694#!/bin/sh## redis Startup script for Redis Server## chkconfig: - 90 10# description: Redis is an open source, advanced key-value store. ## processname: redis-server# config: /etc/redis.conf# pidfile: /var/run/redis.pid PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379EXEC=/opt/redis/redis-serverREDIS_CLI=/opt/redis/redis-cli PIDFILE=/var/run/redis.pidCONF="/opt/redis/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo -n "$PIDFILE exists, process is already running or crashed\n" else echo -n "Starting Redis server...\n" $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo -n "$PIDFILE does not exist, process is not running\n" elsePID=$(cat $PIDFILE) echo -n "Stopping ...\n"$REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;;esac
這裡用cat -v file_name 查看下檔案裡面是否有windows的結尾符。windows的檔案分行符號是的"\r\n"可以使用cat -v 檔案名稱 來查看分行符號是否是,如果是上述的,則行結尾會是^m
有的話用這個命令替換下:sed ‘s/\r//‘ 原檔案 >轉換後檔案這是我踩過的坑!
然後將這個檔案放在 /etc/init.d/redis 給一下執行許可權 chmod下。
然後 chkconfig redis on 設定開機啟動
啟動或者停止 redis
- service redis start #或者 /etc/init.d/redis start
- service redis stop #或者 /etc/init.d/redis stop
完畢!
CentOS 7 編譯安裝Redis