1. 程式人生 > >redis 的啟動方式

redis 的啟動方式

啟動redis 可以分為兩種模式 第一種 直接啟動 (適用於開發環境) 直接執行redis-server 直接啟動redis redis-server redis會使用預設埠6379 或者通過--port引數自定義埠號 redis-server -port --port 6300 第二種 通過初始化指令碼啟動redis指令碼,生產環境推薦使用, 在Redis原始碼目錄的utils 資料夾中有一個名為redis_init_script的初始化指令碼 具體內容如下: #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.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 這時我們要配置redis的執行方式和持續化指令碼、日誌檔案的儲存位置等 (1)配置初始化指令碼。首先將初始化指令碼複製到/etc/init.d 目錄中,檔名為redis_埠號,其中埠號表示要讓redis監聽的埠號。客戶端通過該埠連線redis。然後修改指令碼的第6行的redisport變數的值為相同的埠號。 cp redis_init_script /etc/init.d/redis_init_script_6379 vim /etc/init.d/redis_init_script_6379 (2) 建立需要的資料夾。 /etc/redis 存放redis的配置檔案 /var/redis/ 埠號 存放redis 的持久化檔案 (3) 修改配置檔案。首先將配置檔案的模板複製到/etc/redis 目錄中,以埠號命名(6379.conf) 然後對部分引數進行編輯 cp /usr/local/src/redis-3.2.4/redis.conf /etc/redis/6379.conf vim /etc/redis/6379.conf 需修改配置及說明 引數 值 說明 daemonize yes 使redis以守護程序執行 pidfile /var/run/redis_埠號。pid 設定redis的PID檔案位置 port 埠號 設定redis檢討的埠號 dir /var/redis/埠號 設定持久化檔案存放位置 配置: vim daemonize yes pidfile /var/run/redis_6379.pid port 6379 dir /var/redis/6379 使用/etc/init.d/redis_埠號 staer 啟動redis /etc/init.d/redis_init_script_6379 start 停止 redis 停止redis 考慮到redis有可能正在將記憶體中的資料同步到硬碟中,強制終止redis程序可能導致資料丟失。正確的停止redis 的方式應該是向redis傳送SHUTDOWN 命令,方法為: redis-cil shutdown 當redis收到SHUTDOWN 命令後,會先斷開所有客戶端連線。然後根據配置執行持久化,最後完成退出。 redis可以妥善處理SIGTERM訊號,所以使用"kill redis程序的PID" 也可以正常結束redis,效果和傳送 HUTDOWN 命令一樣。(但是不推薦使用)