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