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 *的方式读取所有配置项。这里列举下比较重要的配置项
配置项名称 | 配置项值范围 | 说明 |
---|---|---|
daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定Redis监听端口,默认端口为6379 | |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind *即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 |
loglevel | debug、verbose、notice、warning | 日志级别,默认为notice |
databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大。 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认值为dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。 |
maxmemory | XXX | 指定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 ****(****为你心设置的密码)