linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)

2022-11-30 19:15:27 浏览数 (1)

目录

linux安装redis 

下载redis安装包

Linux服务器准备

选择安装位置

下载Redis安装包

解压Redis安装包

make编译

前台启动Redis服务

后台启动Redis服务

公网链接修改参数

后台启动修改参数

后台启动Redis命令

杀死线程

Linux下Redis性能测试

Redis登录操作

基础命令

公网链接Redis

redis密码设置-本次服务

redis密码设置-永久修改

退出redis-cli

杀掉redis进程 

redis kill掉进程数据丢失解决方案


linux安装redis 

下载redis安装包

redis各类版本下载列表

获取到下载地址:

代码语言:javascript复制
http://download.redis.io/releases/redis-6.2.7.tar.gz

咱们Linux使用wget下载就行,就不需要特意下载到本地了啊。

Linux服务器准备

我这里选了一个比较大的服务一会测试一下性能

流量拉满

直接创建完毕。

通过Xshell链接成功

选择安装位置

这里选择在/opt文件夹下创建一个soft来存放咱们的Redis

代码语言:javascript复制
cd /opt/
mkdir soft
cd soft

下载Redis安装包

代码语言:javascript复制
wget http://download.redis.io/releases/redis-6.2.7.tar.gz

解压Redis安装包

代码语言:javascript复制
tar -zxvf redis-6.2.7.tar.gz

解压完毕ls查看一下 

make编译

代码语言:javascript复制
cd redis-6.2.7/
make

编译需要的时间比较长,并且要求系统有gcc才能编译。阿里的Linux服务是自带的。 

前台启动Redis服务

在Redis文件夹下有一个src文件下,这个文件夹内有启动的脚本。

所以我们直接在src下执行这个脚本就可以。

代码语言:javascript复制
cd src
./redis-server

那么现在问题来了,前台启动就无法操作了,所以我们要设置后台启动。

后台启动Redis服务

先退回到redis的根目录

代码语言:javascript复制
cd ..

这里我们能看到redis.conf配置文件,我们需要修改一下,顺便把公网链接打开。

代码语言:javascript复制
vi redis.conf

公网链接修改参数

分别是75行和94行

后台启动修改参数

第256行

保存修改,先按esc后输入:wq回车

代码语言:javascript复制
:wq

后台启动Redis命令

重新进入src,并通过配置文件启动redis-server

代码语言:javascript复制
cd src
./redis-server /opt/soft/redis-6.2.7/redis.conf

查看服务是否启动

代码语言:javascript复制
ps -ef | grep redis

杀死线程

可以在查看中看到线程的id,通过kill -9 线程id就行杀死

代码语言:javascript复制
kill -9 6274

Linux下Redis性能测试

由于redis-benchmark脚本文件就在src下所以直接执行即可。

代码语言:javascript复制
./redis-benchmark -h localhost -p 6379 -c 100 -n 100000

简单中文翻译: 吞吐量说明:每秒钟请求203252次,总延迟(微秒),平均延迟0.438微秒,最小0.144微秒,后面是50��%最长的请求时间。

这个性能还是可以的,一般自己电脑也就是3万左右,这个能到20万还多。

Redis登录操作

代码语言:javascript复制
./redis-cli

基础命令

set key value get key 

公网链接Redis

阿里的安全组里面我设置了6379端口号是可以访问的。

代码语言:javascript复制
systemctl status firewalld      --查看防火墙服务状态(详细)
service firewalld stop          --关闭防火墙
service firewalld start         --开启防火墙
systemctl disable firewalld     --关闭开机启动

可以看到,防火墙是关闭状态的。 

由于没有设置密码,并且咱们在修改后台启动的时候已经修改的对应配置,在这里就能直接链接了。

这个是刚才的配置

redis密码设置-本次服务

刚才公网没有密码就链接上了,肯定是不安全的,那么我们设置一下密码:

查看密码

代码语言:javascript复制
config get requirepass

可以看到是空的

设置密码

代码语言:javascript复制
config set requirepass abcd1234

设置成功,这回就无法直接使用公网地址链接了:

我们添加上密码

可以看到,有了密码就能链接上了。

redis密码设置-永久修改

永久修改需要处理配置文件,首先,我们需要在redis-conf中找到requirepass,并在后面加上密码。

退出redis-cli

代码语言:javascript复制
exit

杀掉redis进程 

代码语言:javascript复制
ps -ef | grep redis
kill -9 6274

进入到Redis根目录

代码语言:javascript复制
cd ..

修改redis.conf配置文件

代码语言:javascript复制
vi redis.conf

由于是903行,所以需要快速跳过去,使用903gg命令就直接过去了,但是需要自己键盘输入,没法复制。

到了903行,去掉前面的注释,改一下后面的密码即可【:wq】保存。

再次启动Redis服务,登录并且使用【auth指定密码】

代码语言:javascript复制
auth abcd1234

redis kill掉进程数据丢失解决方案

默认情况下,是快照rdb的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb

这种方式不能完全保证数据持久化,因为是定时保存,所以当redis服务kill掉,就会丢失一部分数据,而且数据量大,写操作多的情况下,会引起大量的磁盘IO操作,会影响性能。

所以还要在使用aof做持久化,每一个写命令都通过write函数追加到appendonly.aof中,

需要将1255行的aof打开,这里是Redis6.2.7版本

修改aof持久化的方式 appendonly为yes后【:wq】保存。

再起启动并杀死Redis做测试。

确认问题解决:

这个Redis的吞吐量能让一个几万用户量的App正常运行了。

希望能给大家创造更多的价值。

0 人点赞