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指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用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-cli,redis-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 ****(****为你心设置的密码)