优质博文: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 <password> 命令提供密码,默认关闭 | |
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 ****(****为你心设置的密码)