安裝下載redis,參考官方文檔:https://redis.io/download 下載: shell>wget http://download.redis.io/releases/redis-3.2.6.tar.gz # 這裡版本讀者應該已官方最新stable版本為準 Notice:我使用的安裝 ...
- 安裝下載redis,參考官方文檔:https://redis.io/download
- 下載:
shell>wget http://download.redis.io/releases/redis-3.2.6.tar.gz # 這裡版本讀者應該已官方最新stable版本為準
- Notice:我使用的安裝目錄是/ghca/redis ; 使用的版本是3.2.6; 下文提到的有關目錄和版本,請讀者已自己實際目錄和版本替換。
- 解壓編譯安裝:
shell>tar zxf redis-3.2.6.tar.gz shell>cd redis-3.2.6 shell>make 這是二進位程式已經編譯到了src目錄下,啟動redis-server可以直接就執行其二進位文件,也可以對啟進行make install 安裝,將可執行程式移到指定安裝目錄下 shell>make install PREFIX=/ghca/redis 這一步將redis相關二進位可執行程式安裝到/ghca/redis shell>cd /ghca/redis shell>mkdir log etc #創建日誌和配置目錄 shell>mkdir data #創建rdb和dump文件存放目錄
- 系統級配置修改 (修改配置這一步,可以到啟動redis-server後,按照日誌報警提示對應修改)
- 涉及到啟動redis-server時三個warning的處理http://blog.csdn.net/a491857321/article/details/52006376
- 系統相關配置三項:
- 1)修改/etc/sysctl.conf文件,添加 vm.overcommit_memory=1到文件中
shell>sysctl vm.overcommit_memory=1
- 2)查看cat /sys/kernel/mm/transparent_hugepage/enabled,如果不是[never] 那麼執行,如列印“[always] madvise never“則執行:
shell>echo never >/sys/kernel/mm/transparent_hugepage/enabled shell>cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] 還要將echo 命令加入到 /etc/rc.local 為了在重啟設置 shell>vi /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 3)tcp backlog設置,預設配置是511,如果啟動是日誌有警告warn 則需要修改系統/proc/sys/net/core/somaxconn的值為511
shell>echo 511 >/proc/sys/net/core/somaxconn
- 操作系統最好還是設置swap
- 創建配置文件,從源碼中賦值配置模板,在配置模板基礎上修改。具體配置內容參見《03.Redis-配置文件》
將源碼文件夾下的配置文件複製到安裝目錄下的配置文件目錄 shell>cd etc shell>cp <源碼路徑>/redis.conf /ghca/redis/etc/ 相關配置介紹說明(可以略過): 1)然後根據需求修改相應配置,不過要redis在後臺運行,general 模塊的第一個directive: daemonize no 要修改為daemonize yes 2)3.2.6版本多了安全模式配置,預設是開啟安全模式,開啟安全模式是一層保護redis的措施,如果:沒有明確指定bind配置或者沒有password配置,redis就會在安全模式下運行。redis只會接受連接來自IPV4 IPV6的loopback地址(127.0.0.1)和unix domain sockets 的連接。 3)tcp-keepalived 顧名思義:redis是tcp協議,為了保證client與redis-server之間活起的,該配置會讓redis-server一定周期向client發送一個acks,可配置tcp-keepalived為0 要求沒那麼嚴格的話。 4)有關snapshot-鏡像快照:save <seconds> <changes> 時間和次數 兩個維度條件滿足,那麼就做一次snapshot。save的策略可以有多個,因為有時間這個維度的參與,時間到了滿足個數的條件就執行。 這個時間起始計數應該是一次changed的開始吧??,不要快照就註釋所有save。如果最後一次快照失敗,那麼redis會停止所有的對redis key的寫操作。這樣能夠讓adm知道出現了故障,否則就不會有人註意到災難的發生。如果後臺saving線程再次開始工作了,redis將自動允許寫操作。 5)複製replication: 6)網路配置 7)指定pid文件,創建指定日誌文件,日誌文件名最好跟上埠號 創建啟動腳本,通過service 管理; shell>cp <源碼路徑>/utils/redis_init_start /tmp/ # 註意redis更高的版本redis_init_start 文件名改為了redis_init_script,高版本的操作這個文件即可 shell>修改/tmp/redis_init_start 或者 /tmp/redis_init_script 實例內容如下: #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. ### BEGIN INIT INFO # Provides: redis_6379 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Redis data structure server # Description: Redis data structure server. See https://redis.io ### END INIT INFO REDISPORT=6379 # 埠號,和配置文件一致 REDIS_HOME=/ghca/redis # redis安裝目錄 EXEC=$REDIS_HOME/bin/redis-server CLIEXEC=$REDIS_HOME/bin/redis-cli PIDFILE=/ghca/redis/redis.pid # pid文件路徑 和配置文件中設置的路徑一致 CONF="$REDIS_HOME/etc/redis.conf" # 配置文件路徑 case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac 將啟動文件複製到/etc/init.d/目錄下:如,sudo cp /tmp/redis_init_start /etc/init.d/redis_server 複製的service服務名可以自己定義,我這裡定義為redis_server;後面就可以使用service 啟停redis_server服務了。不要忘記,配置文件redis.conf我們還沒修改,下一步就修改配置文件了: 設置完啟動腳本後,就要去設置配置文件內容了,配置文件內容參考《03. Redis-配置文件》
- 最後,添加redis 安裝目錄bin 到PATH中,"export PATH=/ghca/redis/bin:$PATH" 到~/.bashrc文件最後。添加完成source ~/.bashrc 載入。