1、redis快的原因
全内存操作,I/O多路复用,单线程操作(数据结构简单(5种+1(stream))
2、redis数据结构
String,HashMap,Set,ZSet、List、(Stream)
3、redis持久化策略
AOF以及RDB(默认开启),当两种策略都使用的时候,默认使用的AOF
AOF:存储是是操作的命令
RDB:存储的是数据
配置
save 900 1 #900秒时间,至少有一条数据更新,则保存到数据文件中
save 300 10 #300秒时间,至少有10条数据更新,则保存到数据文件中
save 60 10000 #60秒时间,至少有10000条数据更新,则保存到数据文件中
appendonly yes
appendfsync everysec # everysec:表示每秒同步一次(折衷,默认值)
always: 每次写入一条数据,立即将这个数据对应的写日志fsync到磁盘上去,性能非常非常差,吞吐量很低;确保说redis里的数据一条都不丢,那就只能这样了
everysec: 每秒将os cache中的数据fsync到磁盘,这个最常用的,生产环境一般都这么配置,性能很高,QPS还是可以上万的
no: 仅仅redis负责将数据写入os cache就撒手不管了,然后后面os自己会时不时有自己的策略将数据刷入磁盘,不可控了
4、机器宕机了,可能会导致AOF文件破损
用redis-check-aof --fix appendonly.aof 命令来修复破损的AOF文件(在redis/src目录下)
网友评论