linux 【阿里雲服務器】 配置 redis 的正確流程


1.前言

我的域名備案前幾天通過了,這篇隨筆完整的記錄 redis 的安裝流程 與各種 問題 的 具體解決方案。

2.操作【跟着步驟來】

(1)指令cd /usr/local

進入local文件夾里面 ,

指令 mkdir redis 

新建一個叫redis的文件夾,

指令cd redis 

進入redis文件夾,

(2)將redis安裝包【是個后綴 .tar.gz的壓縮包】放於redis文件夾里,

可以使用下載網址直接下載

指令是  wget http://xxxx.xxx/xxx/sss.tar.gz   

 

具體網址自己去官網查,將默認下載到當前文件夾內

或者直接拷貝壓縮包進去 

【我的是在window10 使用xftp 軟件傳輸 壓縮包到 遠程 Linux 的 ,xftp具體操作在我其他隨筆有詳細記載】

(3)解壓安裝包[假設 包名 redis-5.0.8.tar.gz ]

指令 tar -zxvf  redis-5.0.8.tar.gz

解壓當前文件夾內的 名叫 redis-5.0.8.tar.gz 的壓縮包

會自動在當前文件夾新建一個名為redis-5.0.8的文件夾  ,解壓文件放在里面

(4)

指令 cd redis-5.0.8 

繼續進入該文件夾 ,

指令 make 

編譯安裝文件 ,可能需要等一會,沒那么快 。

指令 cd src

繼續進入 src文件夾,

輸入指令pwd 可查看當前位置路徑,我當前在 /usr/local/redis/redis-5.0.8/src  ,

指令 make test 

測試是否可以安裝,這個可能要等幾分鍾,第一次裝會提示

  You need tcl 8.5 or newer in order to run the Redis test

  makeL:***[test] Error 1

因為 缺少TCL(Tool Command Language)工具腳本語言 ,需要安裝

 

 

 

指令 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

直接下載 tcl ,

指令 sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/

以管理員身份解壓到指定位置 ,這里是解壓到 /usr/local/ ,會新建一個叫 tcl8.6.1 的文件夾

 

 

 指令 cd  /usr/local/tcl8.6.1/unix/

進入 unix文件夾 ,

指令 sudo ./configure

以管理員身份執行./configure

指令sudo make

以管理員身份編譯

指令  sudo make install

以管理員身份安裝,

//

指令 /usr/local/redis/redis-5.0.8/src

再次進入src文件夾,

指令 make test

再次測試安裝,當出現報錯

  "test_client_main $::test_server-port"

  make: *** [test]  Error  1

 

 說明可以安裝redis了,但是因為redis不需要安裝,已經是個解壓且編譯好的文件,這不需要再安裝,可直接使用

 

(5)查看端口是否被占用

指令 ps -ef | grep redis 

 

寫着 grep  -- color=auto redis 是查詢接口進程本身 ,不需要理會,將指令改成 ps -ef | grep r[e]dis  即可忽略顯示 【只要在redis這個字符串加上[x] 即可 ,x表示redis字符串的一個字母 】

如果有進程使用 6379端口

指令  kill -9 967

強制關閉 進程數為 967 的進程

 (6)修改redis.conf 配置文件 ,開啟允許redis以服務的方式運行在后端 

 

 

 指令 vi /usr/local/redis/redis-5.0.8/redis.conf 

直接進入編輯配置文件頁面

 

 

 按字符 i ,進入編輯模式

找到 daemonize 屬性 設為yes

 

 

 按esc后 ,按符號 : 然后輸入 wq 再按回車即可保存並退出

 

 

 

(7)啟動 redis

指令/usr/local/redis/redis-5.0.8/src

進入src文件夾,

指令 ./redis-server  /usr/local/redis/redis-5.0.8/redis.conf

啟動redis ,第一次啟動需要 加入配置文件,之后可以不加 ,直接redis-server或 ./redis-server 啟動 但是這需要當前在 /usr/local/redis/redis-5.0.8/src文件夾里面

也可以輸入 vi /usr/local/redis/redis-5.0.8/src/redis-server 啟動

出現圖案

 

 

 說明啟動成功

但是第一次搭建redis會報3個錯

 

 

 從上到下三個錯誤的原因是

(1)tcp設置的值太小了,需要修改更大的才行

(2)overcommit_memory參數設置為0!在內存不足的情況下,后台程序save可能失敗,需要設為1

(3)使用透明大頁THP,可能導致redis延遲和內存使用問題,需要關閉

具體解決操作:

(1)

解決 錯誤1 和 2需要修改rc.local文件

指令 vi  /etc/rc.local

修改 rc.local文件

 

 

修改后保存退出

(2)

解決錯誤3 需要 修改rc.local文件 

指令 vi /etc/rc.local

添加內容

echo never > /sys/kernel/mm/transparent_hugepage/enabled

 

 

 

修改完后保存退出

然后重啟linux系統后即可使用

重啟指令 reboot

 //

再次啟動redis

 

 沒有再報錯了,

如果啟動指令使用 ./redis-server /usr/local/redis/redis-5.0.8/redis.conf 

加上配置文件,將會以服務的方式后端運行,那么 按ctrl+c鍵不會關閉redis 

 

 

(8)關閉redis服務

指令redis-cli shutdown

 

3.啟動redis客戶端

指令redis-cli --raw

 

 指令exit

退出

 

4.設置系統開機自動啟動

(1)

指令  vi /etc/init.d/redis

創建一個文件並進入

(2)編寫腳本,路徑根據實際情況寫,只需要修改紅色部分

#!/bin/sh  
#chkconfig: 2345 80 90  
# Simple Redis init.d script conceived to work on Linux systems  
# as it does use of the /proc filesystem.  
REDISPORT=6379                          #端口號,這是默認的,如果你安裝的時候不是默認端口號,則需要修改
REDISPATH=/usr/local/redis/redis-5.0.8/
               #redis-server啟動腳本的所在目錄,你如果忘了可以用find / -name redis-server 或whereis redis-server找到 
EXEC=${REDISPATH}/src/redis-server
CLIEXEC=${REDISPATH}/src/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid  #在redis.conf中可找到該路徑
CONF="${REDISPATH}/redis.conf"           #redis.conf的位置, 如果不和redis-server在同一目錄要修改成你的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

(3)設置啟動權限

指令 chmod 777 /etc/init.d/redis

(4)現在試一下能不能啟動

先檢查是否有進程占用端口 6379

指令 ps -ef | grep redis

如果有以指令 kill -9 [進程數]  來關閉

 

 

指令cd  /var/run 

進入裝有進程目錄的文件夾run ,查看是否有文件 redis_6379.pid ,有則需要刪除 

刪除指令  rm -f /var/run/redis_6379.pid

[當進程停止時對應的.pid文件會刪除,開啟時則會創建 ,但是有時候強制停止進程,會遺留 pid文件沒有刪除,因此需要手動刪除]

 

 

好了現在可以試試了

指令/etc/init.d/redis start

啟動redis

 

 

指令 /etc/init.d/redis stop

關閉redis

 

 

指令 redis-cli 或redis-cli --raw

連接redis客戶端

 

 

[這樣做的優勢是可以在任意的當前目錄位置運行redis指令]

 

(5)開機啟動

如果當前Linux系統是 Ubuntu 的

則使用指令

//安裝 sysv-rc-conf
apt-get update apt-get install sysv-rc-conf
//設置自啟動 sysv
-rc-conf redis on

其他Linux系統使用

//設置自啟動
chkconfig redis on

 

設置完后,

指令 reboot

重啟操作系統等一會再連接查看即可

啟動后指令查看進程

ps -ef | grep red[i]s

 

 

 

      成功 ,撒花!!!

 

----------------------------

參看博文原址:

https://www.cnblogs.com/wumz/p/10236694.html

https://blog.csdn.net/philosophyatmath/article/details/88863136

https://blog.csdn.net/yup1212/article/details/82152106

https://blog.csdn.net/chen_jia_hao/article/details/83865551

https://www.cnblogs.com/s-p-l/p/10633488.html

https://blog.csdn.net/xiaomudouer/article/details/88847894

https://www.cnblogs.com/john-xiong/p/12098827.html

https://blog.csdn.net/weixin_33446857/article/details/80842037

https://www.cnblogs.com/byx1024/p/12228735.html

https://blog.csdn.net/u011712163/article/details/90903396

https://www.cnblogs.com/beautiful-code/p/9441954.html

https://blog.csdn.net/ztf312/article/details/83025297

https://www.jianshu.com/p/a73e0565e2a1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM