Linux平台Redis安裝總結


本文測試驗證的操作系統為CentOS Linux release 7.8.2003 (Core) Redis版本為redis-6.0.8。 敬請注意,如有不同,請以實際情況為准。

 

 

下載編譯Redis 

# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# tar -xzvf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make
# cd src && make install  #可選命令,如果你想將redis安裝到/usr/local/bin下,可以執行該命令。一般不用此命令

 

注意redis執行了make install后,redis的可執行文件都會自動復制到 /usr/local/bin 錄下

 

 

make編譯時,如果提示"Its a good idea to run 'make test' "則代表編譯安裝成功。

 

 

clip_image001

 

 

創建普通用戶

 

 

# groupadd redis
 
# useradd redis -g redis -s /sbin/nologin

 

創建目錄存放redis命令和配置文件

 

 

我們將redis主目錄放在/usr/local下面,當然,你可以將其放置在其他目錄下,例如/home/redis

 

# mkdir -p /usr/local/redis/bin

# mkdir -p /usr/local/redis/etc

 

 

 

移動文件

 

#pwd
/tmp/redis-6.0.8
# mv redis.conf /usr/local/redis/etc/
# cd src/
# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel redis-trib.rb /usr/local/redis/bin
 
 
# cd /usr/local/redis/bin
# ls -lrt
total 57184
-rwxrwxr-x. 1 root root     3600 Sep 10  2020 redis-trib.rb
-rwxrwxr-x. 1 root root      735 Sep 10  2020 mkreleasehdr.sh
-rwxr-xr-x. 1 root root 11351968 Jul 27 14:46 redis-server
-rwxr-xr-x. 1 root root 11351968 Jul 27 14:46 redis-sentinel
-rwxr-xr-x. 1 root root  6727200 Jul 27 14:47 redis-cli
-rwxr-xr-x. 1 root root  6399120 Jul 27 14:47 redis-benchmark
-rwxr-xr-x. 1 root root 11351968 Jul 27 14:47 redis-check-rdb
-rwxr-xr-x. 1 root root 11351968 Jul 27 14:47 redis-check-aof
 
redis-server            redis服務器
redis-cli               redis命令行客戶端
redis-benchmark         redis性能測試工具
redis-check-aof         aof文件修復工具,日志文件檢測工(比如斷電造成日志損壞,可以檢測並修復)
redis-check-dump        rdb文件檢查工具
redis-check-rdb         快照文件檢測工具
redis-sentinel          Redis哨兵啟動文件
redis-trib.rb           官方提供的Redis Cluster的管理工具,無需額外下載,默認位於源碼包的src目錄下,但因該工具是用ruby開發的,所以需要准備相關的依賴環境

 

 

 

修改目錄的Owner

 

 

# chown -R redis:redis /usr/local/redis/
# ls -lrt /usr/local/redis/
total 0
drwx------. 2 redis redis 194 Aug 11 14:21 bin
drwx------. 2 redis redis  40 Aug 11 14:27 etc

 

Redis安全&配置

 

1:在redis.conf配置文件文件中綁定本機IP

 

bind 127.0.0.1 192.168.xxx.xxx

 

如果服務器有多個IP,可限定Redis Server監聽的IP;也可以通過Redis配置項bind,可同時綁定多個IP。如上所示。 

clip_image002

 

默認情況下,如果沒有指定bind配置指令,Redis 會監聽來自服務器上所有可用網絡接口的連接。所以一般應該限定本機訪問或特定IP訪問。

 

 

2:指定日志記錄級別

 

 

默認情況下,日志記錄級別為 notice ,這個是生產環境的默認配置。可以根據具體需要調整日志記錄級別。

 

3:配置log文件的地址

 

log文件位置,默認值為stdout,使用標准輸出,默認后台模式會輸出到/dev/null

 

# mkdir /var/log/redis

# chown -R redis:redis /var/log/redis/

 

logfile "/var/log/redis/redis.log"

 

注意:如果你設置了redis日志的路徑,必須確保該路徑已經存在。例如,當前案例,不存在這樣的目錄,那么我們先創建該目錄,並將其owner修改為redis用戶

 

# mkdir /var/log/redis

# chown -R redis:redis /var/log/redis 

 

 

4:后台啟動的話需要修改redis.conf文件,daemonize no ---- >daemonize yes

 

clip_image003

 

 

5:修改默認端口

 

 

Redis服務端默認鏈接端口是6379,可以修改端口號,避免使用熟知端口,降低被初級掃描的風險。

 

 

port xxxxx

 

這個簡單測試,使用端口6676

 

port 6676

 

 

6默認情況下,Redis是無需密碼登錄的。這意味着你無需通過密碼驗證就可以直接連接到Redis服務,這樣其實是非常不安全的,所以建議設置密碼驗證。

 

 

注意:Redis因查詢效率高,auth 這種命令每秒能處理 10w 次以上,簡單的 Redis 密碼極容易為攻擊者暴破。所以建議設置一個超長(24位以上)的密碼。

 

 

 

requirepass 75612a867ceeb452924c98778caa959c37120bfff6582aaad48298acbf320b28

 

 

7:盡量將Redis限制在內網使用,避免公網訪問,另外設置 iptables 策略,僅允許指定的 IP 訪問 Redis 服務。

 

$ iptables -A INPUT -s x.x.x.x -p tcp --dport xxxx -j ACCEPT

 

如果防火牆是firewalld,可以參考下面命令 

 

#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="6676" accept"
 
#systemctl restart firewalld.service

 

8: 限制redis文件目錄訪問權限

 

設置redis的主目錄權限為700

 

# chmod -R 700 /usr/local/redis/

 

如果redis配置文件獨立於redis主目錄,權限修改為600,因為Redis密碼明文存儲在配置文件中。 

 

# chmod 600 /usr/local/redis/etc/redis.conf 

 

此處案例中,我們將redis的日志放置在/var/log/redis目錄下,所以也一並修改redis日志目錄的訪問權限

 

# chmod -R 700 /var/log/redis/

 

啟動redis服務

 

 

禁止使用root用戶啟動redis,使用普通用戶啟動redis

 

 

如果以root用戶啟動的話,可以使用下面腳本,但是出於安全考慮,一般不建議使用root用戶啟動redis

 

#/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

 

 

我們使用redis用戶啟動Redis服務

 

#sudo -u redis /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

 

 

注意:如果以redis用戶啟動,有時候會遇到Can't chdir to './': Permission denied這類錯誤

 

  出現這個錯誤是因為我們沒有修改參數dir的值(默認為./),而沒有換到redis有權限訪問的目錄,然后執行上面shell命令。遇到權限問題。

 

clip_image004

 

 

驗證Redis服務啟動情況

 

 

# ps -ef | grep redis-server
 
redis    25258     1  0 14:49 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6676
 
root     25282 25207  0 14:50 pts/0    00:00:00 grep --color=auto redis-server
 
 
 
#/usr/local/redis/bin/redis-cli -p 6676
 
127.0.0.1:6676> auth 75612a867ceeb452924c98778caa959c37120bfff6582aaad48298acbf320b28
 
OK
 
127.0.0.1:6676> ping
 
PONG


免責聲明!

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



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