Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI 编写、支持网络、可基于内存亦可持久化的日志型、Key-Value,并提供多种语言的API。
功能
- 缓存:Redis可以作为缓存来提高数据读取速度,同时减轻数据库的负荷。
- 分布式锁:Redis可以通过SETNX命令实现分布式锁,保证多个进程或线程对共享资源的互斥访问。
- 消息队列:Redis可以通过发布/订阅模式实现消息队列,用于异步处理任务,减少响应时间和提高吞吐量。最好还是用rabbitmq,kafka。
- 计数器:Redis可以通过INCR命令实现计数器,用于统计用户访问次数、计算网站访问量等。
- 数据存储:Redis可以作为持久化存储,将数据存储到硬盘上,以便在重启后恢复数据。
持久化
- RDB
- AOF
RDB
快照snapshot,保存文件为dump.rdb
在conf文件可以设置快照
save
表示每多少秒后检查一次,有多少次修改就会触发快照
设置文件夹位置
dir /
自动触发
满足触发条件
执行flushdb或flushall
执行shutdown
手动触发
- save:在主进程执行 会阻塞主进程 这会导致redis其它功能不可用
- bgsave:fork一个子进程进行备份处理
获取最后一次保存时间戳
bash
复制代码
lastsave
date -d @---- #格式化
rdb优势
-
适合大规模
-
定时备份
-
恢复快
-
对数据完整性和一致性要求不高(不是实时备份)
-
RDB需要经常fork(),以便使用子进程在磁盘上持久化。如果数据集很大,fork()可能会很耗时,如果数据集很大并且CPU性能不好,可能会导致Redis停止服务客户端几毫秒甚至一秒钟。AOF也需要fork(),但频率要低一些,并且您可以调整想要重写日志的频率,而不会牺牲持久性。
作者:用户9626921347875
链接:juejin.cn/post/723810…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。