Redis入门指南(三)
持久化
RDB方式:
rdb方式的持久化是通过快照完成的。符合一定条件时redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程叫快照。以下几种情况会对数据进行快照:
1 根据配置规则进行自动快照
2 用户执行save 或 bgsve命令
3 执行 flushall 命令
4 执行复制时
根据配置:save 900 1 ,在900秒内有一个及以上的键被更改则进行快照。
save 或 bgsave :当进行服务重启、手动迁移以及备份时我们要手动执行。
- save : redis同步地进行快照操作,在快照执行过程中会阻塞所有来自客户端的请求。
- bgsave:可以在后台异步地进行快照的操作,执行后会立即返回OK表示开始执行快照操作。如果想知道是否执行完成可以使用lastSave命令获取最近一次成功执行快照的时间。异步看下面原理。
flushAll 命令:redis会清除数据库中所有数据,不管触发快照与否,只要自动快照条件不为空,就会执行一次。
执行复制时:当设置了主从模式时,redis会在复制初始化时进行自动快中啊。
快照原理
使用fork函数复制一份当前进程的副本(子进程)
父进程继续接受并处理客户端发来的命令,而子进程开始将内存中的数据写入硬盘。
写完所有数据,会该临时文件替代旧的RDB文件。
PS :redis重启后会读取 RDB 快照文件,将数据载入内存。(执行fork时,操作系统使用写时复制copy-on-write策略,实际上看上去像是生成了一份内存备份保证子进程不受影响,实际内存不会增加。)进行快照时不会修改硬盘的rdb文件,执行完会将旧文件替换成新的。
AOF方式:
使用redis存储非临时数据时
开启:
默认没有开启,开启后每执行一条会更改数据,会写入硬盘的AOF文件。默认文件名是appendonly.aof,可以通过appendfilename参数修改。
AOF实现:
AOF以纯文本的形式记录了redis执行的写命令。达到一定条件,redis会重写AOF文件,节省空间,保留最后的数据。配置: auto-aof-rewrite-percentage 100。
同步硬盘数据:由于操作系统的缓存机制,数据并没有真正地写入硬盘,而是进入硬盘的缓存。默认情况下,系统30秒会执行一次同步。在这三十秒可能会导致数据丢失,通过参数 appendfsync设置可以每秒执行一次同步操作(默认 everysec,no 表表示不主动同步由操作系统来同步,always表示每次执行写入都会执行同步)。
redis允许 同时开启 AOF 和 RDB , AOF 方式的持久化可能丢失的数据更少。
主从复制
配置:
一个主库可以拥有多个从库,一个从库只能拥有一个主库,从库一般是只读。从库也可以拥有从库。
配置方法 :1 从库配置文件加 “slaveof 主库地址 主库端口”,主库无需配置 2 redis命令,从库中:slaveof 主库地址 主库端口。启动 另一个Redis实例,监听 6379 端口:Redis -service --port 6380 --slaveof 127.0.0.1 6379
redis命令:INFO replication 查看信息。通过从库的配置文件中的slave-read-only 为 no 可以使从库可写。
原理:
从库启动,向主库发送SYNC,主库收到命令,开始保存快照(即RDB持久化的过程),并将此期间收到的命令缓存起来。快照完成,发给从库,从库使用快照和缓存加载数据,完成复制。
(断开后重连,会重新复制初始化。即使数据只更新几条也重新保存快照,这样效率低下。后面提供了 有条件的增量数据传输。)从库同步的时候不会阻塞,serve-stale-data no : 从库备份时不响应请求。
前面是复制初始化,接下来是复制同步过程,主库的热河会导致数据变化的命令都会异步传给从库。此过程会一直持续贯穿整个主从同步过程指导主从关系终止。
从库数据持久化:
为了提高性能,开启从库持久化,禁用主库持久化。当主库崩了,需要手工从从库恢复数据: 1 从库使用 slaveof no one 命令,将从库提升为主库 2 启动崩溃的主库,使用 slave 命令变为从库。
无硬盘复制:
如果主库快照被关闭,则会进行无硬盘复制:直接通过网络发送数据给从库。配置文件:repl-diskless-sync yes
增量复制:
断线重连情况下的优化,Redis会有个ID,根据ID,之前的缓存被放在积压队列中,收到主库的命令时会记录下命令的偏移量,然后根据偏移量对这些进行执行。
集群
只需要将每个数据节点的 Cluster-enabled yes配置选项打开即可。每个集群中至少有3个主库才能正常运行。
节点,槽,槽的重新分配,复制与故障转移
哨兵
功能:1 监控数据库的正常运行 2 主库故障自动提升从库为主库
使用:(1) 建立sentinel.conf文件,内容为 :sentinel monitor 主数据库名 "ip" "port" 1; (2)接下来启动sentinel进程,将上述配置文件的路径传给哨兵。redis - sentinel /.../sentinel.conf
原理:建立两条链接,一条订阅主库的sentinel: hello 频道,另一个定时向主库发送INFO命令。 为每个主库或者从库部署一个哨兵。
转载于:https://www.cnblogs.com/RobertLionLin/p/11415862.html
Redis入门指南(三)相关推荐
- 《Redis入门指南(第2版)》一3.2 字符串类型
本节书摘来异步社区<Redis入门指南(第2版)>一书中的第3章,第3.2节,作者: 李子骅 责编: 杨海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 3. ...
- Redis入门指南 第1章 简介 Redis的几项特性
Redis入门指南 第1章 简介 Redis的几项特性 之前在做爬虫相关的demo时接触到了Redis,它基于键值对的存储系统吸引了我.它的操作十分方便,而且性能也高.趁着假期,系统地自学一下Redi ...
- Redis入门指南之三(入门)
本节主要介绍Redis的5种数据类型,同时使用Python API来操作Redis,其中python版本为3.5, redis版本为4.0.2. redis-py 的API的使用可以分类为: (1)连 ...
- 《Redis入门指南(第2版)》一第2章 准备
本节书摘来异步社区<Redis入门指南(第2版)>一书中的第2章,作者: 李子骅 责编: 杨海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2章 准备 R ...
- Redis 入门指南 pdf
2019独角兽企业重金招聘Python工程师标准>>> Redis入门指南 https://yunpan.cn/cxqL7KVWgrTVb 访问密码 77ea 转载于:https: ...
- Redis入门指南(第2版) Redis设计思路学习与总结
https://www.qcloud.com/community/article/222 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术 ...
- Redis入门(三)Redis的基本数据类型
1.String类型 用于在Redis中管理字符串的基本命令:(看了一半) 编号 命令 描述说明 1 SET key value 此命令设置指定键的值. 2 GET key 获取指定键的值. 3 GE ...
- Redis入门指南:深入了解这款高性能缓存数据库
本文将带您了解Redis的基本概念.数据类型.特性以及如何在实际项目中应用Redis.通过阅读本文,您将更好地理解如何利用Redis优化您的应用程序性能. 1. 什么是Redis? 2. Redis的 ...
- 一.Redis入门指南总结--认识Redis
一.Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库,Redis对数据的操作都是原子性的. Redis 与其他 key - value 缓存产品 ...
- 《Redis入门指南》第2版 读书笔记
读第二遍了,感觉和几年前读时的收获不一样了. 送上门来当树洞的 独自承担一切 Redis以简洁为美 Redis通信协议是Redis客户端与Redis之间交流的语言,通信协议规定了命令和返回值的格式. ...
最新文章
- 2020未来科学大奖获奖名单揭晓
- 一文弄懂SSD目标检测算法
- 重温强化学习之强化学习简介
- 英文版Ubuntu 安装中文输入法
- docker搭建gitlab服务器(Centos7)
- 容器编排技术 -- Kubernetes Ingress解析
- 使用Maven 创建web3.0项目
- shell脚本实例(随堂笔记)
- 深信服scsa知识点一
- 模糊聚类及matlab实现,模糊聚类分析及matlab程序实现
- 标题:我的中医自学历程(2013.8.26 更新网盘,欢迎下载和传播)
- 计算机教学研修心得英语,网络研修培训心得体会(精选5篇)
- python数据分析与挖掘实战(2)帕累托法则菜品盈利分析与相关性分析
- iOS开发---本地通知(UILocalNotification)
- FasterReport
- Python绘制小红花
- vi 常用复制与粘帖技巧
- 小白投资理财必看:图解基金买入与卖出规则
- 《机器学习实战》学习笔记(三):决策树
- MTK Android Driver知识大全
热门文章
- 载波为半波三角波的单相三阶SPWM逆变器——谐波分析
- 本特利振动变送器990-05-50-02-00
- 山东大学软件学院概率论与数理统计(考试)——期末考试回忆版
- 矩正式键盘程序c语言,单片机键盘程序(4×4矩阵式)
- _beginthread 与 _endthread 函数分析 (ReactOS版)
- 现代通信技术之分组交换技术
- 排队论模型(五): 有限源排队模型、服务率或到达率依赖状态的排队模型
- 市场研究中的数据分析知识整理 (四)-主成分分析和因子分析
- 尚学堂马士兵Linux视频教程笔记
- IP地址是什么?它怎样分类?它和子网掩码的关系是什么?以太网和令牌环网分别是什么?