• Linux 安装 Redis 教程


    优质博文:IT-BLOG-CN

    一、准备工作

    配置gcc:安装Redis前需要配置gcc

    yum install gcc
    

    如果配置gcc出现依赖包问题,在安装时提示需要的依赖包版本和本地版本不一致,本地版本过高,出现如下问题:

    [root@localhost ~] yum install gcc
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * epel: mirrors.bfsu.edu.cn
     * extras: mirros.aliyun.com
     * updates: mirros.aliyun.com
     No package gcc available.
     Error: Nothing to do
    

    使用--skip--broken命令尝试绕过依赖包时,直接把gcc安装包也绕过了

    卸载依赖包重装版本的方法过于繁琐,可能扯出来一堆版本问题。这种问题原因是之前配置yum源时配置的阿里源所以下载的大多数依赖包版本都比较高,在安装很多较低版本软件时都会遇到这个问题。

    所以,如果是因为配置yum源问题,这里建议直接将yum源更换为Centos官方源。这里我的Centos版本是7.9 到官方找了镜像地址为:http://mirror.centos.org/centos-7/7.9.2009/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm

    操作步骤:
    1、进入repo目录

    cd /etc/yum.repos.d/
    

    2、备份系统原来的repo文件

    mv CentOS-Base.repo CentOS-Base.repo.backup
    

    3、用wget下载repo文件

    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    

    4、替换系统原理的repo文件

    mv CentOS6-Base-163.repo CentOS-Base.repo
    

    5、清理缓存

    yum clean all
    

    6、缓存文件

    yum makecache
    

    7、重新更新yum

    yum update -y
    

    二、Redis 安装包

    Redis官网链接
    在这里插入图片描述
    获取redis资源:或者手动下载后进行上传即可。

    wget http://download.redis.io/releases/redis-5.0.7.tar.gz
    

    Redis 6.2.11官网下载链接

    解压redis安装包到/usr/local路径下:

    tar -zxvf redis-5.0.7.tar.gz -C /usr/local
    

    解压成功后将文件夹名修改为redis

    mv redis-5.0.7 redis
    

    三、安装 Redis

    编译: 进入到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。

    cd redis-5.0.7
    make
    

    安装: 输入以下命令

    make install PREFIX=/usr/local/redis
    

    这里多了一个关键字PREFIX=这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis即可删除redis

    启动Redis: 进入redis安装目录,执行下面命令启动redis服务

    ./bin/redis-server redis.conf
    

    在这里插入图片描述

    四、配置 Redis服务

    【1】如上启动redis不能退出控制台,如果退出控制台redis服务也会停止。如果想要让redis后台的方式运行,需要修改redis的配置文件:redis.conf。将该配置文件中的daemonize no改为 daemonize yes即可:

    daemonize yes
    

    修改完配置文件后,重新启动一下redis服务

    ./bin/redis-server redis.conf
    

    【2】查看redis服务器运行情况:端口号6379

    netstat -tunlp | grep redis
    

    在这里插入图片描述
    【3】如果需要在其他主机连接redis,记得要修改redis.conf配置文件,增加一行bind * -::* ,即配置了允许所有主机连接。
    在这里插入图片描述
    修改完后记得重启redis服务使配置文件生效。

    【4】进入redis客户端模式:

    ./bin/redis-cli
    

    关闭redis客户端模式

    shutdown
    

    【5】通过CONFIG GET *的方式读取所有配置项。这里列举下比较重要的配置项

    配置项名称配置项值范围说明
    daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
    port指定Redis监听端口,默认端口为6379
    bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind *即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
    protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no
    timeout300当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
    logleveldebug、verbose、notice、warning日志级别,默认为notice
    databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
    rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为yesRedis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大。
    dbfilenamedump.rdb指定本地数据库文件名,默认值为dump.rdb
    dir指定本地数据库存放目录
    requirepass设置 Redis 连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭
    maxclients0设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。
    maxmemoryXXX 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把 Key 存放内存,Value会存放在swap区。配置项值范围列里XXX为数值。

    【6】将redis加入到开机启动

    vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
    

    【7】将redis-cliredis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

    cp /usr/local/redis/bin/redis-server /usr/local/bin/
    cp /usr/local/redis/bin/redis-cli /usr/local/bin/
    

    【8】设置redis密码

    a.运行命令:redis-cli
    b.查看现有的redis密码(可选操作,可以没有)
      运行命令:config get requirepass 如果没有设置过密码的话运行结果会如下图所示
    c.设置redis密码
        运行命令:config set requirepass ****(****为你要设置的密码),设置成功的话会返回‘OK’字样
    d.测试连接
      重启redis服务
      //(redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你设置的密码))
      输入 redis-cli 进入命令模式,使用 auth '*****' (****为你设置的密码)登陆      
    

    【9】让外网能够访问redis

    a.配置防火墙:  **firewall-cmd --zone=public --add-port=6379/tcp --permanent**(开放**6379**端口)
    
    **systemctl restart firewalld**(重启防火墙以使配置即时生效)
    
    查看系统所有开放的端口:firewall-cmd --zone=public --list-ports
    
    b.此时 虽然防火墙开放了6379端口,但是外网还是无法访问的,因为redis监听的是127.0.0.1:6379,并不监听外网的请求。
    
    (一)把文件夹目录里的redis.conf配置文件里的bind 127.0.0.1前面加#注释掉
    
    (二)命令:redis-cli连接到redis后,通过 config get  daemonize和config get  protected-mode 是不是都为no,如果不是,就用config set 配置名 属性 改为no。
    

    【10】Linux系统下设置redis的密码:
    1、进入redis操作的命令行:

    redis-cli
    

    2、查看现有的redis密码(可选操作,可以没有)

    config get requirepass
    

    3、设置redis密码

    config set requirepass ****(****为你要设置的密码),设置成功的话会返回‘OK’字样
    

    4、重启redis服务:ctrl+C退出当前的命令行模式后运行命令:

    redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你心设置的密码)
    
  • 相关阅读:
    SQL注入基础---order by \ limit \ 宽字节注入
    vue学习第五天(9月8号)
    angular:trunk包探究
    算法结构-树状数组
    我的Spark学习笔记
    新手如何在IEEE上发表论文?
    深入理解计算机网络:从基本原理到实践应用
    手机用Postern配置socks5全局代理详细教程
    UG NX二次开发(C++)-创建样条曲线(二)-UF_MODL_create_spline使用
    [Swift]同一个工程管理多个Target
  • 原文地址:https://blog.csdn.net/zhengzhaoyang122/article/details/140063846