centos7 安轉redis以及設置自啓動
前言
安裝Redis需要知道自己需要哪個版本,有針對性的安裝,比如如果需要redis GEO這個地理集合的特性,
那麼redis版本就不能低於3.2版本,由於這個特性是3.2版本纔有的。
另外需要注意的是,Redis約定次版本號(即第一個小數點後的數字)爲偶數的版本是穩定版(如2.8版、3.0版),
奇數版本是非穩定版(如2.7版、2.9版),生產環境下一般需要使用穩定版本。
1 . 下載Redis
目前,最新的Redist版本爲3.0,使用wget下載,命令如下:
# wget http://download.redis.io/releases/redis-4.0.2.tar.gz
2 . 解壓Redis
# tar -xzvf redis-4.0.2.tar.gz
3 . 編譯安裝Redis
切換至程序目錄,並執行make命令編譯:
# cd redis-4.0.2
# make
make的過程中如出現gcc報錯,則需要安裝編譯環境,如下:
# yum install gcc-c++
執行安裝命令
# make install
make install安裝完成後,會在/usr/local/bin目錄下生成下面幾個可執行文件,它們的作用分別是:
redis-server:Redis服務器端啓動程序
redis-cli:Redis客戶端操作工具。也可以用telnet根據其純文本協議來操作
redis-benchmark:Redis性能測試工具
redis-check-aof:數據修復工具
redis-check-dump:檢查導出工具
4 . 配置Redis
從解壓目錄下複製配置文件到/etc/redis目錄:
# mkdir /etc/redis
# cp redis.conf /etc/redis/6379.conf
爲了讓redis後臺運行,一般還需要修改redis.conf文件:
vi /etc/redis/6379.conf
修改如下配置項,使redis進程在後臺運行:
daemonize yes
補充 redis.conf 中的daemonize 配置:
daemonize yes
代表開啓守護進程模式。此時是單進程多線程的模式,redis將在後臺運行,並將pid寫入redis.conf--pidfile文件中,此時redis將一直運行,除非手動kill
daemonize no
當前界面將進入redis的命令行界面,exit強制退出或者關閉連接工具(xshell等)都會導致redis進程退出
修改bind:
原來:bind 127.0.0.1 代表本地迴環地址,訪問redis服務只能通過本機的客戶端連接,而無法通過遠程連接
修改爲:將此行註釋或者講ip改成0.0.0.0 這樣就能接受所有來自於可用網絡接口的連接
修改protected mode 保護模式,只允許本地鏈接:
修改爲:protected mode no
設置密碼:在配置文件中有個參數: requirepass 這個就是配置redis訪問密碼的參數;
requirepass test123;
可以在登錄redis後通過如下命令進行操作:
設置密碼:redis 127.0.0.1:6379> config set requirepass test123
查詢密碼:redis 127.0.0.1:6379> config get requirepass
設置密碼後可使用如下命令登錄:
登錄時攜帶密碼:redis-cli -p 6379 -a test123
先登陸後驗證:redis 127.0.0.1:6379>redis-cli -p 6379 redis 127.0.0.1:6379> auth test123
5 . 啓動redis
配置完成後,啓動redis:
# cd /usr/local/bin
# ./redis-server /etc/redis/6379.conf
檢查啓動情況:
# ps -ef | grep redis
redis啓動和停止
1 . 第一種方式: 如上步驟5,這種方式每次重啓服務器後要手動啓動,不太符合我們的需求
2.第二種方式:自啓動redis服務
通過初始化腳本啓動Redis
在Redis源代碼目錄的utils文件夾中有一個名爲
redis_init_script
的初始化腳本文件。需要配置Redis的運行方式和持久化文件、日誌文件的存儲位置。步驟如下:
1、配置初始化腳本
首先將初始化腳本複製到/etc/init.d 目錄中,文件名爲 redis_端口號,其中端口號表示要讓Redis監聽的端口號,客戶端通過該端口連接Redis。然後修改腳本第6行的REDISPORT變量的值爲同樣的端口號。
2、建立以下需要的文件夾。
目錄名 | Value |
---|---|
/etc/redis | 存放Redis的配置文件 |
/var/redis/端口號 | 存放Redis的持久化文件 |
3、修改配置文件
首先將配置文件模板(redis-4.0.2/redis.conf)複製到/etc/redis 目錄中,以端口號命名(如“6379.conf”),然後按照下表對其中的部分參數進行編輯。
參數 | 值 | 說明 |
---|---|---|
daemonize | yes | 使Redis以守護進程模式運行 |
pidfile | /var/run/redis_端口號.pid | 設置Redis的PID文件位置 |
port | 端口號 | 設置Redis監聽的端口號 |
dir | /var/redis/端口號 | 設置持久化文件存放位置 |
現在也可以使用下面的命令來啓動和關閉Redis了
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop
【重中之重】
讓Redis隨系統自動啓動,這還需要對Redis初始化腳本進行簡單修改,執行命令:
vim /etc/init.d/redis_6379
在打開的redis初始化腳本文件頭部第四行的位置,追加下面兩句
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
追加後效果如下:
上圖紅色框中就是追加的兩行註釋,添加完畢後進行保存,即可通過下面的命令將Redis加入系統啓動項裏了
# chmod 755 /etc/init.d/redis //添加執行權限
# chkconfig redis_6379 on //設置開機執行redis腳本
通過上面的操作後,以後也可以直接用下面的命令對Redis進行啓動和關閉了,如下
service redis_6379 start
service redis_6379 stop
經過上面的部署操作後,系統重啓,Redis也會隨着系統自動啓動,並且上面的步驟裏也配置了Redis持久化,下次啓動系統或Redis時,有緩存數據不丟失的好處。
停止Redis
考慮到 Redis 有可能正在將內存中的數據同步到硬盤中,強行終止 Redis 進程可能會導致數據丟失。正確停止Redis的方式應該是向Redis發送SHUTDOWN命令,方法爲:
redis-cli SHUTDOWN
當Redis收到SHUTDOWN命令後,會先斷開所有客戶端連接,然後根據配置執行持久化,最後完成退出。
Redis可以妥善處理 SIGTERM信號,所以使用kill Redis
進程的 PID也可以正常結束Redis,效果與發送SHUTDOWN命令一樣。
最後使用redis desktop manager連接redis,此時需要開放6379端口(centos7)
systemctl stop firewalld.service 關閉防火牆
systemctl start firewalld.service 開啓防火牆
查看所有打開的端口: firewall-cmd --zone=public --list-ports
更新防火牆規則: firewall-cmd --reload
添加端口: firewall-cmd --zone=public --add-port=6379/tcp --permanent(--permanent永久生效,沒有此參數重啓後失效)
重啓防火牆:firewall-cmd --reload
查看:firewall-cmd --zone= public --query-port=80/tcp
刪除:firewall-cmd --zone= public --remove-port=80/tcp --permanent