zoukankan      html  css  js  c++  java
  • 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
    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    android之手机震动Vibrate
    Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .
    用AutoCompleteTextView实现历史记录提示
    AutoCompleteTextView
    android学习笔记7--------MVC设计模式
    Android之MVC模式
    Android中常见的MVC模式
    //11个整数的手机号码正则式 phoneNumber(String number)
    YuvImage知识点总结
    运行项目的时候出现missing frature:WATCH
  • 原文地址:https://www.cnblogs.com/kerrycode/p/15136790.html
Copyright © 2011-2022 走看看