CentOS 7 編譯安裝Redis

來源:互聯網
上載者:User

標籤:

在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檔案,同時可以查看官網的編譯安裝方法( 傳送門 )。

  1. 在Redis根目錄下,直接 make
  2. make 成功後,如果需要 make test ,則需要配置TCL8.5/TCL8.6來進行測試
  3. TCL8.6非預設安裝的時候(CentOS版本偏低),一定要在PATH的路徑中建立檔案串連到tclsh8.6,同時注意,檔案名稱必須是tclsh8.5/tclsh8.6,因為在make test的時候,會使用which尋找8.5或者8.6版本的tcl
  4. 安裝:直接 make install ,預設安裝在 /usr/local/bin 下,如果需要設定自訂路徑,用 make PREFIX=/usr/local/redis install 來安裝
  5. 安裝後,預設是沒有設定檔的,需要配置的話,在安裝成功後可以使用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參數,表示允許使用逸出字元.
  6. 配置:
    1. 為了防止記憶體爆滿導致系統崩潰,需要設定/etc/redis/*.cnf中的maxmemory
    2. 防止報錯,可以調整記憶體配置策略
      /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
  1. service redis start   #或者 /etc/init.d/redis start  
  2. service redis stop   #或者 /etc/init.d/redis stop 


完畢!

CentOS 7 編譯安裝Redis

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.