redis 安装配置

1,下载编译安装redis

http://www.redis.cn/download.html
redis 安装配置

下载完成,使用rz命令上传至linux 服务器
tar -xvf redis-5.0.5.tar.gz            #解压源码包
mv redis-5.0.5 /usr/local/redis #将源码包移动到/usr/local/目录下,重命名为redis
cd /usr/local/redis/                      #cd 到源码目录里

redis 安装配置

redis 安装配置

make #编译
中间有两个报错,解决

redis 安装配置
#没有安装gcc 包,yum install gcc -y 解决
redis 安装配置
#加个环境变量一起编译    make MALLOC=libc 用这句命令能正常编译
redis 安装配置

make install #安装编译完成的程序,也可以不用安装,cd 到src目录 执行也行
cd /usr/local/bin/ #这个目录是安装完成后 生成的脚本,打开关闭 客户端工具都在里面

redis 安装配置

2.配置 配置文件,启动 关闭 redis

vim /usr/local/redis/redis.conf  #配置 redis 配置文件,修改以下选项
bind 0.0.0.0 #监听IP 0.0.0.0 表示此计算机所有IP都监听
daemonize  yes  #是否后台启动redis,打开
protected-mode no # redis的安全机制,打开可能会报错
#requirepass 123456 #设置密码,默认注释状态。

redis-server /usr/local/redis/redis.conf  #指定配置文件启动 redis

redis 安装配置
netstat -nltp|grep 6379 #检查6379 是否被监听了,这个端口是redis默认端口
redis 安装配置
redis-cli #登陆客户端,输入几个值,查看以下
redis 安装配置

redis-cli shutdown #关闭redis服务

3.RDB持久化

RDB持久化方式是通过快照(snapshotting)完成的,当符合一定条件时,redis会自动将内存中所有数据以二进制方式生成一份副本并存储在硬盘上。当redis重启时,并且AOF持久化未开启时,redis会读取RDB持久化生成的二进制文件(默认名称dump.rdb,可通过设置dbfilename修改)进行数据恢复,对于持久化信息可以用过命令“info Persistence”查看。

快照触发条件

RDB生成快照可自动促发,也可以使用命令手动触发,以下是redis触发执行快照条件,后续会对每个条件详细说明:

客户端执行命令save和bgsave会生成快照;
根据配置文件save m n规则进行自动快照;
主从复制时,从库全量复制同步主库数据,此时主库会执行bgsave命令进行快照;
客户端执行数据库清空命令FLUSHALL时候,触发快照;
客户端执行shutdown关闭redis时,触发快照;

save命令触发和shutdown触发

客户端执行save命令,该命令强制redis执行快照,这时候redis处于阻塞状态,不会响应任何其他客户端发来的请求,直到RDB快照文件执行完毕,所以请慎用。
 首先使用redis-cli info Persistence 查看最近一次持久化时间:

redis 安装配置

 #可以看到数据是一组时间戳看的 不方便看,我们可以用AWK 配合date命令转换下
 date "+%Y-%m-%d %H:%M:%S" -d @`redis-cli info Persistence|awk -F":" 'NR==5{print$2}'`

redis 安装配置
#可以看到运行了 redis-cli save 命令,最后一次的保存时间已经发生了改变

shutdown触发

redis 安装配置
#注意只有正常关闭才会触发保存,直接kill是无法触发的

bgsave命令触发

basave 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程(在此期间父进程不响应请求),原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
redis 安装配置
#用法和save 差不多,但是阻塞时间比save 大大减少了

save m n规则触发

这个配置在配置文件里
默认
save 900 1          #表示900秒内有1个键发生修改,触发bgsave
save 300 10        #表示300秒内有10个键发生修改,触发bgsave
save 60 10000    #表示60秒内有10000个键发生修改,触发bgsave
#上面关系式或的意思,满足一个即可触发bgsave

FLUSHALL触发和主从触发

flushall命令用于清空数据库,请慎用,当我们使用了则表明我们需要对数据进行清空,那redis当然需要对快照文件也进行清空,所以会触发bgsave。
在redis主从复制中,从节点执行全量复制操作,主节点会执行bgsave命令,并将rdb文件发送给从节点。

RDB持久化配置——配置文件

save m n
#配置快照(rdb)促发规则,格式:save <seconds> <changes>
#save 900 1  900秒内至少有1个key被改变则做一次快照
#save 300 10  300秒内至少有300个key被改变则做一次快照
#save 60 10000  60秒内至少有10000个key被改变则做一次快照
#关闭该规则使用svae “” 

dbfilename  dump.rdb
#rdb持久化存储数据库文件名,默认为dump.rdb

stop-write-on-bgsave-error yes 
#yes代表当使用bgsave命令持久化出错时候停止写RDB快照文件,no表明忽略错误继续写文件。

rdbchecksum yes
#在写入文件和读取文件时是否开启rdb文件检查,检查是否有无损坏,如果在启动是检查发现损坏,则停止启动。

dir "/etc/redis"
#数据文件存放目录,rdb快照文件和aof文件都会存放至该目录,请确保有写权限

rdbcompression yes
#是否开启RDB文件压缩,该功能可以节约磁盘空间
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章