热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Linux平台Redis安装总结

本文测试验证的操作系统为CentOSLinuxrelease7.8.2003(Core),Redis版本为redis-6.0.8。敬请注意,如有不同,请以实际情况为准。  下载编译

本文测试验证的操作系统为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

扫描上面二维码关注我

如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.


原文链接:https://www.cnblogs.com/kerrycode/p/15136790.html



推荐阅读
author-avatar
心若繁花花满地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有