目录
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正常运行了。
希望能给大家创造更多的价值。