redis两种备份方式(持久化方式)

一、redis持久化的两种方式:
RDB: 对内存中数据库状态进行快照
AOF: 把每条写命令都写入文件
RDB方式:将redis在内存中的数据库状态保存到磁盘里面,RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件的数据状态。

RDB的生成方式:

指向命令手动生成
通过配置自动生成
1.指向命令手动生成

有两个redis命令可以生成RDB文件,一个是SAVE,另一个是BGSAVE,SAVE命令会阻塞redis服务器进程,直到RDB文件

创建完毕为止,在服务器阻塞期间,服务器不能处理任何的进程,BGSAVE会派出一个子进程,然后由子进程负责创建RDB

文件,服务器进程(父进程)继续处理命令请求,创建RDB文件结束之前,客户端发送的 BGSAVE 和 SAVE 命令会被服务器拒*

2.通过配置自动生成

可以设置服务器配置的save选项,让服务器每隔一段时间自动执行一次BGSAVE命令,可以通过save选项设置多个保

存条件,但只要其中任意一个条件被满足就会执行BGSAGE命令
%title插图%num

AOF方式:是通过保存redis服务器所执行的写命令来记录数据库状态的AOF文件刷新方式,有三种:

1.appendfsync always — 每提交一个修改命令都调用fsync到AOF文件,非常慢,但是很安全;

2.appendfsync everysec — 每秒都调用fsyns刷新到AOF文件,很快但可能丢失一秒内的数据;

3.appendfsync no — 依靠OS进行刷新,redis不主动刷新AOF,这样*快但是安全性差;

默认并且推荐每秒刷新,这样在速度和安全上都做到了兼顾

二、数据恢复
1.ROB方式

ROB文件的载入工作是在服务器启动时自动执行的,没有专门用于载入ROB文件命令,只要redis服务器再启动时检测到

ROB文件存在,它就会自动载入ROB的文件,在服务器载入的期间,会一直处于阻塞状态,直到载入工作完成为止

2.AOF方式

服务器在启动时,通过载入和执行AOF文件中保存的命令来还原服务器关闭之前的数据,具体过程:

载入AOF文件

创建模拟客户端

从AOF文件中读取一条命令

使用模拟客户端执行命令

循环读取并执行命令,直到全部完成

如果同时启动了AOF和ROB方式,AOF优先,启动时只加载AOF文件恢复数据

三、RDB和AOF对比总结
两种备份方案的选择:

对于RDB持久化,

一方面是bgsave在进行fork操作时redis主进程会阻塞,

另一方面,子进程向硬盘写数据也会带来IO压力,但数据的完整性和一致性受备份条件影响可能较差;

而AOF持久化由于持续的写入IO压力更大,但数据的一致性和完整性较好。
————————————————

原文链接:https://blog.csdn.net/qq_35275233/article/details/87892822

Python中的json操作

Python中的json操作

一、定义–json(存储数据)

josn能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
可以使用json在python程序中分享数据。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。称为JS对象简谱。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
二、json的简单使用

代码示例1:json.dump()存储数据

import json #导入json库

dic = { #字典
‘name’:’刘德华’,
‘age’:18,
‘hobby’:’唱歌’,
}
filename = ‘dic.json’ #指定将该字典文件存储到哪个文件中
with open(filename,’w’) as f: #以写入模式打开文件
json.dump(dic,f) #json.dump()函数将字典存储到文件中

代码示例2:json.load()加载存储的数据信息

import json #导入json库
”’
dic = { #字典
‘name’:’刘德华’,
‘age’:18,
‘hobby’:’唱歌’,
}
filename = ‘dic.json’ #指定将该字典文件存储到哪个文件中
with open(filename,’w’) as f: #以写入模式打开文件
json.dump(dic,f) #json.dump()函数将字典存储到文件中

”’
filename = ‘dic.json’
with open(filename) as f:
dic = json.load(f) #加载刚刚写的数据
print(dic) #打印

C:\Users\Lenveno\Envs\untitled1\Scripts\python.exe C:/Users/Lenveno/PycharmProjects/untitled1/demo1.py
{‘name’: ‘刘德华’, ‘age’: 18, ‘hobby’: ‘唱歌’}

Process finished with exit code 0

三、json保存用户数据:有效存储用户信息数据。

python爬取猫眼电影Top100

python爬取猫眼电影Top100

目标:获取猫眼电影Top100

运用css选择器抓取数据,将数据存放在csv表格里

实现代码如下

import requests
import time
import csv
import parsel

def get_url(url):
headers={
‘User-Agent’: ‘自己的user-agent’,
‘Cookie’: ‘自己的cookie’,
‘Host’: ‘maoyan.com’,
‘Referer’: ‘https: // maoyan.com / board / 4?offset = 40’
}
response=requests.get(url=url,headers=headers,timeout=3)
print(‘调用get’)
if response.status_code==200:
return response.text
else:
return None

def parse_url():
htmltext=get_url(url)
selector=parsel.Selector(htmltext)
content_list=selector.css(‘dd’)
global dit
for lis in content_list:
index=lis.css(‘i::text’).get()
name = lis.css(‘.name a::text’).get()
star = lis.css(‘.star::text’).get().replace(‘主演:’,”)
time = lis.css(‘.releasetime::text’).get().replace(‘上映时间:’,”)
score = lis.css(‘.integer::text’).get()+lis.css(‘.fraction::text’).get()
dit = {
‘排名’:index,
‘电影名称’: name,
‘主演’: star,
‘上映时间’: time,
‘评分’: score
}
print(dit)
save_file()
print(‘调用parse’)
print(type(dit))

def save_file():
csv_writer.writerow(dit)

def main(page):
global url
url=’https://maoyan.com/board/4?offset=’+str(page)
parse_url()
print(‘调用main’)

if __name__==’__main__’:
f = open(‘D://maoyanTop100.csv’, ‘a+’, encoding=’utf-8′, newline=”)
csv_writer=csv.DictWriter(f,fieldnames=[‘排名’,’电影名称’,’主演’,’上映时间’,’评分’])
csv_writer.writeheader()
for i in range(10):
main(page=i*10)
time.sleep(2)
print(‘下载完成’)

%title插图%num

%title插图%num

腾讯云轻量应用镜像——Typecho 预置版体验

腾讯云轻量应用镜像——Typecho 预置版体验

LuminousKK · 122 天前 · 1891 次点击

这是一个创建于 122 天前的主题,其中的信息可能已经有所发展或是发生改变。

前段时间鹅厂双十一搞了一个多月的活动,很多人看着轻量 3M 带宽便宜就上车了(包括我),放在手里还没有正式用起来,就四处乱撞试试鹅厂的新玩意。

*近腾讯云轻量上线了 DockerCE 和 Typecho 两个新的应用镜像,这种预装型的一键镜像想必有不少大佬会对此表示不屑:“这么简单的东西,自己搭两分钟就搭建好了,还用他??”

不过别忘了轻量这个产品自诞生起就是为了占领下沉市场而推出的产品,降低使用门槛的同时给用户提供更好的体验就是产品侧的初衷吧,那就来看看这个一键有多“一键”吧。

dDWG.png

Typecho 是一个由中国团队开发的开源跨平台博客程序。它基于 PHP5 构建,并支持多种操作系统(Linux,Unix,BSD,Windows)、 服务器(Apache,Lighttpd,IIS,Nginx)和数据库(Mysql,PostgreSQL,SQLite)。相比于 WordPress,它更加轻量化,而且本土化使用不用单独做什么优化就能获得很好的体验。

dSbL.png

预装的软件信息:

dZma.png

装好之后直接配置文件就可以从控制台读取到,

dixQ.png

查看用户名和密码需要注意这个登陆的账户并不是 root,所以*好就用他的一键看……比较好的是这个密码看起来是动态生成的,不同的轻量部署后是不一样的,避免了被扫后台的风险。

dpFj.png

跟随他的指示去登陆就,然后前往设置里面就可以开始对你的站点进行你自己喜欢的设置了:

duBW.png

鹅厂这个镜像相比于我之前体验过的一些小商家凑数的镜像来说,各个软件的安装位置都是标的很清楚的,想要修改配置也很容易,不会像你*次尝试二进制安装那样找不到安装位置。

dwTw.png

至于备份,这方面不用怎么担心,本身云硬盘就是具有三备份的,硬件损坏造成数据丢失的概率跟中彩票差不多。软件方面,轻量提供了三个免费的镜像额度,你可以随时从控制台去做一个全盘快照,折腾之前点一下,折腾炸了一键回到原点。

*后总结一下,优点就是着实快捷,直接镜像部署好 LNMP 都是现成的,DNS 一解析直接就可以使用了,免去配置环境和安装的流程。 这样可以随时开随时删的对于测试来说还是挺方便的,如果说你就想要个 LNMP 的环境选这个就 OK 了,不用自己花时间去编译或者加源装二进制包了。

除了上面的优点,也不得不说说这一类镜像的不足之处。从我个人建站的角度来讲,这样一键化的绑定一定程度上有悖于租赁服务器的初衷,只为了一个网站开一台轻量的话未免有点浪费,毕竟一个网站空间就能完成这个需求,而且管理和备份更加简洁。其次就是备份和迁移以及设置 SSL 这种,脱离了面板完全 Shell 手动去修改 conf 文件,我觉得对新人还是不是特别友好。

之后的优化点向鹅厂的负责人提了几句能不能像 Lightsail 一样免费提供基于 Plesk 面板的镜像,通过这些专业的第三方公司让整个建站的流程更加简洁;或者是使用宝塔+WP/Typ 这样的组合,能够让服务器的利用率更高一些。

轻量服务器目前的优势还是在价格和带宽,比如目前新人购买还是只有 10 块左右一年,同带宽的 CVM 都比这贵得多:

d68J.png

*后的*后还是得叨叨一句,如果真是萌新到*次摸到这样的镜像,愿意从零开始探索的话个人还是建使用宝塔面板这样的 Linux 面板进行搭建,这样至少能够比较容易地实现服务器的多用途化。也可以选择这样的一键镜像,轻量本身给你预留了很大的上升空间,我建议从 NGINX 配置 SSL 证书、网站目录打包、导出数据库备份 SQL 这个方面去探索,毕竟经历了这些基础配置过程才是个合格的站长,不论你用什么面板,命令行都是 Linux 的基石,你必须多多少少要懂一些基本的。

这样一个“记事本”的镜像,不知道各位有什么看法和建议?

7 条回复 • 2020-12-15 10:47:26 +08:00
liuran 1
liuran 121 天前
话说 typecho 好像还在回响。。。*新的一个更新是 17 年的。
KENNHI 2
KENNHI 121 天前 via Android
“个人还是建使用宝塔面板这样的 Linux 面板进行搭建”
typecho 个人还是建议手动安装 Nginx/Caddy,php-fpm,php-curl,php-mbstring,php-sqlite,没必要安装 MySQL,装 SQLite3 就行了。
依靠面板一是不安全,二也不是从零开始,三是这面包耗资源肯定比 typecho 还多。
LuminousKK 3
LuminousKK 121 天前 via Android
@KENNHI 如果能搞定手动配置那也不是新人了,一个 vi 写 nginx 的 config 就能劝退一群人
iddddg 4
iddddg 121 天前
@liuran 哈哈,正式版已经不响了好像。开发版倒是一直回响
ecs 5
ecs 121 天前
来自 2017 的回响! Typecho,我悟了!
learningman 6
learningman 121 天前
@LuminousKK 就是这个折腾的过程才能学到点东西啊,总不能永远不学
freecloud 7
freecloud 115 天前
轻量应用服务器的性价比,还是挺高的。可以看下 12 月的轻量活动。 /t/735545

华为云的墨西哥北美网速及延迟测试

sloat · 141 天前 · 1861 次点击
这是一个创建于 141 天前的主题,其中的信息可能已经有所发展或是发生改变。
墨西哥北美网速及延迟测试 背景介绍 *近我们公司打算在北美部署 SAAS 应用,原来老板已经决定部署在 BAT 北美区域的云上,但前段时间看到米国的“净网行动”,老板十分担心业务的可持续性,怕 BAT 云被禁后业务中断,前期投入泡汤,让我寻找其他方案。恰好双十一期间在找海外服务器优惠的时候,发现华为云在墨西哥城有云服务,老板就让测测墨西哥城访问米国及枫叶国的时延,看看是否能满足业务需求。 测试发现网络质量不错,想着有人应该跟我们有类似的需求,就把测试过程跟结果发出来,给大家做个参考。 墨西哥访问北美网络时延测试 以下图场景为例。我在华为云的拉美-墨西哥城一区域购买了 ECS 实例和 EIP,部署了一个简单的 Web 服务,并分别测试米国、枫叶国通过公网访问墨西哥节点网络时延。

光说没用,上来就测,干他~! 先上搬瓦工的测速站点,大部分 VPS 厂商节点通过公网访问我在墨西哥城部署的 web 应用,IP 网络延迟如下:

惊喜!米国的西部、中部、东部访问墨西哥节点时延竟然只有 50~80ms,同时也没有丢包,其中洛杉矶的 VPS 供应商 quadraNET 到墨西哥竟然有 43ms 。枫叶国到墨西哥节点时延是 72~100ms,只有温哥华有 2.6%的丢包率。 墨西哥城访问北美的网络时延,对于我们来说完全能满足网络需求。 再测下墨西哥节点访问米国西部阿里云测速域名的延迟,测速网址:oss-us-west-1.aliyuncs.com

基本在 62ms 左右。 在测下墨西哥节点访问米国东部阿里云延迟,测速网址:oss-us-east-1.aliyuncs.com

比西部高 20ms 左右,基本在 82ms 左右。

现在受国际环境影响,直接在北美部署业务存在太多不确定性,幸好华为云墨西哥城节点可以覆盖北美区域,并且网络延迟在 100ms 以下,给我们出海企业吃了颗定心丸。

墨西哥 墨西哥城 节点 北美2 条回复 • 2020-12-03 16:25:37 +08:00
Inuyashaaa 1
Inuyashaaa 136 天前
考虑净网行动怕被封所以从 BAT 转华为,这是什么逻辑?服务北美用户的 SaaS 数据放华为还是放境外,这是提前准备上实体清单吗?为啥不直接用 AWS/Azure/GCP
bytejet 2
bytejet 126 天前
回头有云连接这块的需求可以随时联系!

单词分析

单词分析

试题G:单词分析
时间限制:1.0s内存限制:5120MB本题总分:20分问题描述】
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得*多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现*多的字母和这个字母出现的次数。
输入格式】
输入一行包含一个单词,单词只由小写英文字母组成
输出格式】
输出两行,*行包含一个英文字母,表示单词中出现得*多的字母是哪个。如果有多个字母出现的次数相等,输出字典序*小的那个。第二行包含一个整数,表示出现得*多的那个字母在单词中出现的次数。
【样例输入】
langao
【样例输出】
a
2
c=list(input())
s=[]
p=[]
for i in range(len(c)):
b=c[i]
j=c.count(b)
s.append(j)
z=max(s[i] for i in range(len(s)))
for i in range(len(c)):
if s[i]==z:
p+=str(c[i])
q=min(p[i] for i in range(len(p)))
print(q)
print(z)

#其中一个输入zdztgsoixiztypzozsusnjsqxzyzppssxaotmsssbssrudzszsislhzatzggalzrdbjyszzdzkxmzzvzuzzolcvssjsusggnkxsu
输出
s
20

KubeVela:一个高可扩展的云原生应用平台与核心引擎

resouer · 137 天前 · 2111 次点击
这是一个创建于 137 天前的主题,其中的信息可能已经有所发展或是发生改变。
什么是 KubeVela ?
一言以蔽之,KubeVela 是一个简单易用且高度可扩展的应用管理平台与核心引擎。KubeVela 是基于 Kubernetes 与 OAM 技术构建的。

详细的说,对于应用开发人员来讲,KubeVela 是一个非常低心智负担的云原生应用管理平台,核心功能是让开发人员方便快捷地在 Kubernetes 上定义与交付现代微服务应用,无需了解任何 Kubernetes 本身相关的细节。在这一点上,KubeVela 可以被认为是云原生社区的 Heroku。

另一方面,对于平台团队来讲,KubeVela 是一个强大并且高可扩展的云原生应用平台核心引擎。基于这样一个引擎,平台团队可以快速、高效地以 Kubernetes 原生的方式在 KubeVela 中植入任何来自云原生社区的应用管理能力,从而基于 KubeVela 打造出自己需要的云原生平台,比如:云原生数据库 PaaS 、云原生 AI 平台、甚至 Serverless 服务。在这一点上,KubeVela 可以被认为是一个“以应用为中心”的 Kubernetes 发行版,以 OAM 为核心,让平台团队可以基于 KubeVela 快速打造出属于自己的 PaaS 、Serverless 乃至任何面向用户的云原生平台项目。

中文详细介绍文章: https://mp.weixin.qq.com/s/LauydAy1ngcDuZ3lhqrL6Q
项目主页: https://github.com/oam-dev/kubevela/
项目文档: https://kubevela.io

redis持久化,主从及数据备份

现在在项目里已经大量使用redis了,为了提高redis的性能和可靠性我们需要知道和做到以下几件事:

常用内存优化手段与参数
redis的性能如何是完全依赖于内存的,所以我们需要知道如何来控制和节省内存。

首先*重要的一点是不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,但是其内存管理成本非常的高,所以要关闭VM功能,请检查你的redis.conf文件中 vm-enabled 为 no。

其次*好设置下redis.conf中的maxmemory选项,该选项是告诉Redis当使用了多少物理内存后就开始拒*后续的写入请求,该参数能很好的保护好你的Redis不会因为使用了过多的物理内存而导致swap,*终严重影响性能甚至崩溃。

另外Redis为不同数据类型分别提供了一组参数来控制内存使用,我们知道Redis Hash是value内部为一个HashMap,如果该Map的成员数比较少,则会采用类似一维线性的紧凑格式来存储该Map, 即省去了大量指针的内存开销,这个参数控制对应在redis.conf配置文件中下面2项:

hash-max-zipmap-entries 64
hash-max-zipmap-value 512
含义是当value这个Map内部不超过多少个成员时会采用线性紧凑格式存储,默认是64,即value内部有64个以下的成员就是使用线性紧凑存储,超过该值自动转成真正的HashMap。

hash-max-zipmap-value 含义是当 value这个Map内部的每个成员值长度不超过多少字节就会采用线性紧凑存储来节省空间。

以上2个条件任意一个条件超过设置值都会转换成真正的HashMap,也就不会再节省内存了,那么这个值是不是设置的越大越好呢,答案当然是否定的,HashMap的优势就是查找和操作的时间复杂度都是O(1)的,而放弃Hash采用一维存储则是O(n)的时间复杂度,如果成员数量很少,则影响不大,否则会严重影响性能,所以要权衡好这个值的设置,总体上还是*根本的时间成本和空间成本上的权衡。

同样类似的参数还有:

list-max-ziplist-entries 512
说明:list数据类型多少节点以下会采用去指针的紧凑存储格式。

list-max-ziplist-value 64
说明:list数据类型节点值大小小于多少字节会采用紧凑存储格式。

set-max-intset-entries 512
说明:set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。

Redis内部实现没有对内存分配方面做过多的优化,在一定程度上会存在内存碎片,不过大多数情况下这个不会成为Redis的性能瓶颈,不过如果在Redis内部存储的大部分数据是数值型的话,Redis内部采用了一个shared integer的方式来省去分配内存的开销,即在系统启动时先分配一个从1~n 那么多个数值对象放在一个池子中,如果存储的数据恰好是这个数值范围内的数据,则直接从池子里取出该对象,并且通过引用计数的方式来共享,这样在系统存储了大量数值下,也能一定程度上节省内存并且提高性能,这个参数值n的设置需要修改源代码中的一行宏定义REDIS_SHARED_INTEGERS,该值默认是10000,可以根据自己的需要进行修改,修改后重新编译就可以了。

持久化
redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。

snapshotting
快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照,下面是默认的快照保存配置:

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000 #60秒内容如超过10000个key被修改,则发起快照保存
也可以命令行的方式让redis进行snapshotting:
redis-cli -h ip -p port bgsave
保存快照有save和bgsave两个命令,save操作是在主线程中保存快照的,由于redis是用一个主线程来处理所有 client的请求,这种方式会阻塞所有client请求,所以不推荐使用。
快照生成过程大致如下:

redis调用fork,现在有了子进程和父进程;
父进程继续处理client请求,子进程负责将内存内容写入到临时文件。由于os的写时复制机制(copy on write)父子进程会共享相同的物理页面,当父进程处理写请求时os会为父进程要修改的页面创建副本,而不是写共享的页面。所以子进程的地址空间内的数据是fork时刻整个数据库的一个快照;
当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程退出。
同时snapshotting也有不足的,因为两次快照操作之间是有时间间隔的,一旦数据库出现问题,那么快照文件中保存的数据并不是全新的,从上次快照文件生成到Redis停机这段时间的数据全部丢掉了。如果业务对数据准确性要求*高的话,就得采用aof持久化机制了。

aof
aof 比快照方式有更好的持久化性,是由于在使用aof持久化方式时,redis会将每一个收到的写命令都通过write函数追加到文件中(默认是 appendonly.aof)。当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于os会在内核中缓存 write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机。有三种方式如下(默认是:每秒fsync一次):

appendonly yes //启用aof持久化方式
# appendfsync always //每次收到写命令就立即强制写入磁盘,*慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
# appendfsync no //完全依赖os,性能*好,持久化没保证
aof 的方式也同时带来了另一个问题。持久化文件会变的越来越大。例如我们调用incr test命令100次,文件中必须保存全部的100条命令,其实有99条都是多余的。因为要恢复数据库的状态其实文件中保存一条set test 100就够了。为了压缩aof的持久化文件。redis提供了bgrewriteaof命令。收到此命令redis将使用与快照类似的方式将内存中的数据 以命令的方式保存到临时文件中,*后替换原来的文件。bgrewriteaof命令如下:

redis-cli -h ip -p port bgrewriteaof
bgrewriteaof命令执行过程如下:
redis调用fork ,现在有父子两个进程;
子进程根据内存中的数据库快照,往临时文件中写入重建数据库状态的命令;
父进程继续处理client请求,除了把写命令写入到原来的aof文件中。同时把收到的写命令缓存起来。这样就能保证如果子进程重写失败的话并不会出问题;
当子进程把快照内容写入以命令方式写到临时文件中后,子进程发信号通知父进程。然后父进程把缓存的写命令也写入到临时文件;
现在父进程可以使用临时文件替换老的aof文件,并重命名,后面收到的写命令也开始往新的aof文件中追加。
这两种持久化方式有各自的特点,快照相对性能影响不大,但一旦崩溃,数据量丢失较大,而aof数据安全性较高,但性能影响较大,这就得根据业务特点自行选择了。

主从复制
redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中。

要使用主从功能需要在slave端进行简单的配置:
slaveof master_ip master_port #如果这台机器是台redis slave,可以打开这个设置。
slave-serve-stale-data no #如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题。
配置好之后启动slave端就可以进行主从复制了,主从复制的过程大致如下:

Slave端在配置文件中添加了slaveof指令,于是Slave启动时读取配置文件,初始状态为REDIS_REPL_CONNECT;
Slave端在定时任务serverCron(Redis内部的定时器触发事件)中连接Master,发送sync命令,然后阻塞等待master发送回其内存快照文件(*新版的Redis已经不需要让Slave阻塞);
Master端收到sync命令简单判断是否有正在进行的内存快照子进程,没有则立即开始内存快照,有则等待其结束,当快照完成后会将该文件发送给Slave端;
Slave端接收Master发来的内存快照文件,保存到本地,待接收完成后,清空内存表,重新读取Master发来的内存快照文件,重建整个内存表数据结构,并*终状态置位为 REDIS_REPL_CONNECTED状态,Slave状态机流转完成;
Master端在发送快照文件过程中,接收的任何会改变数据集的命令都会暂时先保存在Slave网络连接的发送缓存队列里(list数据结构),待快照完成后,依次发给Slave,之后收到的命令相同处理,并将状态置位为 REDIS_REPL_ONLINE。
整个复制过程完成,流程如下图所示:

%title插图%num

从以上的复制过程中可以发现,Slave从库在连接Master主库时,Master会进行内存快照,然后把整个快照文件发给Slave,也就是没有象MySQL那样有复制位置的概念,即无增量复制,如果一个master连接多个slave,就会比较影响master性能了。

数据备份策略
具体的备份策略是可以很灵活的,比如可以大致如下:

为了提高master的性能关闭master的持久化机制,即不进行快照也不进行aof,而是在凌晨访问量低的时候定时的用bgsave命令进行快照,并将快照文件保存到备份服务器上;
slave端开启aof机制,并定时的用bgrewriteaof 进行数据压缩,将压缩后的数据文件保存到备份服务器上;
定时的检查master与slave上的数据是否一致;
当master出问题并需要恢复时,如果采用master的备份快照恢复直接将备份的dump.rdb拷贝到相应路径下重启即可;如果要从slave端恢复,需要在slave端执行一次快照,然后将快照文件拷贝到master路径下然后重启即可。不过有一点需要注意的是,master重启时slave端数据会被冲掉,所以slave端要在master重启前做好备份。
持久化磁盘IO方式及其带来的问题
有Redis线上运维经验的人会发现Redis在物理内存使用比较多,但还没有超过实际物理内存总容量时就会发生不稳定甚至崩溃的问题,有人认为是基于快照方式持久化的fork系统调用造成内存占用加倍而导致的,这种观点是不准确的,因为fork 调用的copy-on-write机制是基于操作系统页这个单位的,也就是只有有写入的脏页会被复制,但是一般的系统不会在短时间内所有的页都发生了写入而导致复制,那么是什么原因导致Redis崩溃的呢?

答案是Redis的持久化使用了Buffer IO造成的,所谓Buffer IO是指Redis对持久化文件的写入和读取操作都会使用物理内存的Page Cache,而大多数数据库系统会使用Direct IO来绕过这层Page Cache并自行维护一个数据的Cache,而当Redis的持久化文件过大(尤其是快照文件),并对其进行读写时,磁盘文件中的数据都会被加载到物理内存中作为操作系统对该文件的一层Cache,而这层Cache的数据与Redis内存中管理的数据实际是重复存储的,虽然内核在物理内存紧张时会做Page Cache的剔除工作,但内核可能认为某块Page Cache更重要,而让你的进程开始Swap,这时你的系统就会开始出现不稳定或者崩溃了。经验是当你的Redis物理内存使用超过内存总容量的3/5时就会开始比较危险了。

————————————————

原文链接:https://blog.csdn.net/tonyXf121/article/details/8475603

云灾备、云容灾、云备份、数据库上云、线下线上云灾备、灾备有云等

基于云计算技术,灾难恢复系统的成本低,恢复速度快。未来,云灾备解决方案将为用户提供线上线下多态多云的数据复制、备份、恢复和接管,而灾备也会成为一种标准化的服务,就像水电一样。

云灾备与传统的企业单位实施的本地或异地灾备模式不一样,云灾备是一种全新的灾备服务模式,主要包括传统物理主机、虚拟机等IT系统向公有云或私有云等云端化灾备的趋势,以及在新业务形态下云与云之间的灾备等。在具体的实际场景应用中,云灾备包括了传统的数据存储和定时复制,以及数据的实时传输、系统迁移、应用切换, 还有灾备端应急接管业务应用等。

云灾备是指灾备业务的云端实现形式,主要包括云备份与云容灾,云备份与云容灾是一个有机的统一体。其中,云备份是指备份技术将生产存储数据直接备份到公有云上,进而实现数据备份与恢复功能;云容灾则是指通过数据 /系统的云端迁移、高可用等方式实现业务的快速接管,保证业务连续性。

随着云计算的快速兴起,大约从2013年开始,国内开始讨论云灾备的概念。2014 年,云灾备开始以一种独立的业务形态出现。这之后,云灾备的实践逐渐增多。2016年,云灾备成为灾备行业*重要的关键词之一,用户本地到云端、云与云之间的数据迁移、备份与恢复、业务的高可用等需求批量出现。有专家指出,这主要得益于云计算的普及,以及数据作为组织重要资产的安全保护机制的逐渐建立。从2017年开始,云灾备的应用场景越来越丰富,云备份与恢复、业务云迁移、云高可用、云共享等出现在各大公有云市场,用户对云灾备的信任度也逐渐增强。

在云服务的接受程度逐步提升的同时,时常出现的云服务平台宕机事故也让促使灾备服务商加快了云灾备解决方案的推出速度,并与云平台服务商深度合作,联合发布各种云端灾备解决方案。与此同时,逆向云灾备应用场景也开始冒头,即用户将生产放在云端,将本地作为灾备中心。

云灾备结合云平台的计算、存储和带宽等诸多优势,相比本地灾备,在基础设施上的投入更少,可以更好地降低IT成本,可以按需付费,具有灵活度高、恢复速度快等优势。在通往云计算理想王国的道路上,云灾备不可或缺。Gartner的统计数据显示,2018年,采用灾难恢复即服务(DRaaS)的组织机构数量超过了采用传统服务的数量。相对于可以恢复到本地的异地存储备份,DRaaS提供了基于云的计算能力,不仅可以实现数据的恢复,更可以在云中通过虚拟机启动整个业务系统。

云灾备的形式很多,可以是云平台服务商自身数据中心的容灾备份,也可以是第三方灾备服务商提供的灾备解决方案。还是那句话,不要将所有的鸡蛋放在同一个篮子里。用户在选择云灾备服务时,除了在云端做好数据保护和业务接管以外,还应该在本地保留独立的数据。

2019年5月, 网络安全等级保护制度 2.0国家标准发布, 这标志着国家网络安全等级保护步入新的时代。 等保 2.0也对灾备提出了新的要求,比如从异地定时备份变为异地实时备份,从系统冗余(冷热无要求)变成热冗余,并要保证业务的高可用切换等。灾备刻不容缓,灾备永无止境。

传统企业上云,灾备先行

阿里云的数据显示,目前已有约40万个数据库迁移到阿里云上。Gartner预测,到2023年,全球3/4的数据库都将运行在云上。传统企业上云已势不可挡,有数据显示,中国企业的上云意愿高达84%。曾经在很长一段时间内,企业上云*主要的障碍就是安全性。安全涉及的范围非常广泛,灾备就是其中重要的一环。

传统企业上云,灾备要先行。5月29日,阿里云发布了新一代企业级云灾备解决方案,旨在为制造、金融、医疗等企业用户提供一键容灾能力,更好地实现业务恢复、数据保护和网络自愈,*大程度地保护本地和云上业务的稳定运行。

相比传统灾备方案,阿里云企业级云灾备方案的优势体现在以下几方面:免设备维护、高可靠;整机备份、整机恢复;天级部署,云服务即开即用;整体成本节省50%;充分满足SLA要求,可定期进行灾备演练。

Gartner预计,到2020年,90%的容灾操作将发生在云端。现在看来,灾备上云只是时间问题。

数据库容灾

数据 库容灾,即在异地部署一个一模一样的数据库,一个数据库所处的地理位置发生自然灾害了导致当前数据库发生灾难,另一个数据库会立马顶替工作。

 

关于云灾备

灾备是灾难备份的简称。从严格意义上讲,信息系统的灾备是指信息系统的灾难备份与恢复,包含两层含义:灾难前的备份与灾难后的恢复。

以云计算为基础的第三方IT技术平台正在逐年增加,并成为协助企业转型的重要推力。据IDC数据显示,到2020年,中国将成为全球*大的第三方平台市场,云计算时代,企业对灾备的需求将越发强烈,云灾备作为灾备领域的一个新兴概念,它的出现为企业提供了一个行之有效的解决方案。

云灾备是一种全新的灾备服务模式,主要包括传统物理主机、虚拟主机等IT系统,往私有云或公有云等云端化灾备的趋势,以及新业务形态下,灾备端云化,云与云之间的灾备等。

> > > >

云灾备与云备份的差别

云备份指将本地数据备份到云计算云存储平台。云灾备指的不仅仅是传统的数据存储和定时复制,而是包括了数据实时传输,迁移,应用切换,保证灾备端应急接管业务应用等范畴。

云灾备的特点

结合云计算、云存储的特性,云灾备具备多方面的优势:

A.节约-投入低

无须一次性采购高额的硬件投入,也无须面对因为采购硬件所带来的设备寿命、利旧、再采购等硬件生命周期管理问题。

B.高效-资源服务化

结合了云计算的特点提供了多租户平台、弹性扩容的功能,实现了云灾备资源的服务化。

C.部署灵活-敏捷运维

部署简单、运维方便、随时演练,运维人员可专注于整个IT系统的分层灾备的设计和规划上,并利用弹性的云灾备资源进行分层、分阶段部署。

D.多系统-适应混合IT架构

对于物理机、虚拟机、云主机,本地数据库、云数据库,长期并存的混合IT架构,可以通过云灾备进行集中管理,全面保护。

E.安全-继承传统灾备技术优势

部分云灾备解决方案继承了传统灾备解决方案在数据一致性、业务连续性和数据安全性方面的特点。

中国在灾备市场发展趋势预测

 

A.云灾备将成为主流

云存储的发展将进一步刺激云灾备的发展。有预测显示,目前全球数据量以每两年翻一番的速度增长,到2020年全世界需要管理的数据将达到35ZB(1ZB约为1000亿TB)。

云计算、大数据等新技术和应用为该领域提供了新的发展机遇,云计算的核心思想是将大量资源统一管理和调度,向用户提供按需服务。基于云计算技术,灾难恢复系统成本更低,恢复速度也更快。备份及恢复服务供应商对云环境的亲和性、对于云环境的适应能力以及在满足数据中心工作的可扩展性等方面都成为未来该领域的竞争热点。

B.灾备将成为信息安全工作的重中之重

信息安全是国家安全的重要组成部分,已经上升到政治安全、经济安全、领土安全等并驾齐驱的战略高度,金融、能源、电力、通信、交通等各关键领域、关键部门的关键信息基础设施是经济社会运行的神经中枢,是信息安全的重中之重,也是可能遭到重点攻击的目标,因此相关的灾备系统一定要尽快落实到位,作为数据安全的*后一道防线,灾备工作需要肩负的责任重大。

云安全方面,需要不断提升对云计算核心软硬件的自主研发能力;提高企业自身信息安全防护意识,灾难恢复是信息安全保障的*后一道防线,当数据丧失可用性和可控性时,仍可通过灾难恢复技术挽救回来。

C.灾备不再是一个业务而是一个生态

以往单一的灾备技术已经发展成一个集信息存储、信息传输、数据安全等多个方面于一体的综合性IT技术,同时,不同的灾备技术也必须依赖更高维度的生态系统管理予以有效整合。

灾备安全生态(DR Total Solution Ecological,DR-TSE)理念是以更高的维度建立一个完善的灾备体系,以生态的角度去看待原本点状的灾备部署,充分发挥每一个模块的效用,使任何一种灾备方式都不仅仅是针对某一个数据、某一个应用进行的,而是涵盖在整个业务逻辑中进行,从而实现线上、线下的使用快速方便,软件、硬件、SaaS的交付模式齐全完备,容错、容灾、备份灵活共存,共享、迁移和演练随时随地进行,本地、异地、云端灾备式任意构建,数据库、文件、流媒体全面支持,各类国产、进口、云上、云下单操作系统无缝兼容,由此形成合力,真正做到灾备及高效的业务连续性管理。全生态灾备技术将大受欢迎!

云灾备必不可少,但多云用户怎么办?

虽然相对于企业传统的容灾备份解决方案,上云后的企业在容灾备份方面可以稍稍松上一口气———一般的云服务提供商自身都具有完备的容灾备份解决方案——诸如阿里云、腾讯云以及天翼云都有着强大的容灾备份系统,但对于用户来说,把所有的“宝”都押在同一个云服务提供商身上似乎也不是*对保险,这从*近发生的几次“单云级”故障的案例就可以轻易看出。因此,企业期望能够有一个多云的灾备的方案,以便能够确保企业业务更加的可靠和稳定。

不过,遗憾的是,大多数云服务厂商提供的容灾备份解决方案,仅仅限于同一个云服务提供商。如果你的企业想采用的是混合云或者多云的灾备模式,那么,对不起,您就需要自己配置一套多云灾备解决方案了。可想而知,这对于企业的IT来说,是一个什么样的挑战。

多云灾备的挑战
容灾备份,实际上是两个概念,容灾是为了在遭遇灾害时能保证信息系统能正常运行,帮助企业实现业务连续性的目标,备份是为了应对灾难来临时造成的数据丢失问题。容灾备份的*终目标是帮助企业应对人为误操作、 软件错误 、病毒入侵等“软”性灾害以及硬件故障、自然灾害等“硬”性灾害。容灾备份系统一般是指相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。

在“云计算”时代,云灾备与传统定义上的容灾备份并无明显的不同,只不过容灾备份的对象由原来的企业自身的数据中心的IT设备转化为云服务提供商的数据中心的IT设备,因此,传统数据中心所采用的“两地三中心”、“双活”等灾备模式依然适用于云灾备。只不过,应用虚拟化技术,云灾备可以通过虚拟化数据中心实现更低的延时、更高的数据传输吞吐量,从而满足桌面虚拟化频繁读写的性能需求,由此做到了持续保护级别的灾难恢复。同时,云灾备系统还集成了本地HA(High Available)系统、异地容灾系统的优点,加上云端的集中管理,集中数据分析等功能,从而打造了一种功能强大的云灾备系统。

不过,就像前面提到的,这种云灾备系统实际上只是针对于同一云服务提供商,对于想要实现多云灾备的企业来说,以上的这些技术和方法是不太适用的。因为对于多云环境下的灾备来说,由于各个云服务商数据中心的地理位置、策略配置、数据接口等各项指标都不尽相同,这就使得“两地三中心”、“双活”等灾备模式并不能完整的保护企业,而强大的虚拟化技术也是派不上用场,更不用说实现HA和云端的集中管理了。

混合云灾备横空出世
华为云凭借华为在企业级容灾领域十余年、上千个项目的方案和经验积累,包含华为IT本身的容灾实践经验,在国内首推Multi cloud混合云灾备方案,提供多云时代下从备份到容灾端到端的完整解决方案能力,为被多云灾备困扰的企业用户带来了福音。

%title插图%num

华为云EI产品部总经理贾永利表示, Multi cloud混合云灾备方案基于华为云对大企业IT系统的理解,创新地提供了裸机、专属云等服务,让重载业务能够以*小IT改造成本备份容灾上云,帮助客户真正实现了云上数据安全无忧。

华为Multi cloud混合云灾备方案包含跨云备份、跨云容灾、云上容灾三大场景,涵盖灾备演练、容灾管理、数据同步、灾备中心基础设施搭建等能力,能够为企业用户提供一整套完整的多云灾备能力。

跨云备份解决方案
跨云备份解决方案可以有效解决一般企业、教育、医疗、电商客户的数据安全性问题,满足不同客户环境的数据备份需求。可实现与客户数据中心到华为云、异构公有云之间的数据备份,并根据客户对数据备份安全性级别的要求提供多样化的公有云备份服务。管理服务器部署在云上,备份Agent抓取数据后由本地部署的介质服务器去重、压缩、加密后备份通过备份服务器写入OBS,备份Agent执行时CPU占用率将低于5%。
%title插图%num

跨云容灾解决方案
跨云容灾解决方案面向大量企业、金融普遍采用的灾备中心场景,结合专属云方案,提供线上灾备中心能力,实现物理机到云、虚拟机到云的场景容灾,RPO可达秒级,结合Veritas、英方等第三方合作伙伴能力,可进行图形化容灾管理,故障监控,业务切换,简化灾备管理,实现与客户数据中心到华为云、异构公有云之间的数据容灾。
%title插图%num

云上容灾解决方案
云上容灾解决方案提供业界首家跨可用区RPO=0的虚拟机级容灾保护,可大幅降低企业容灾TCO,简化容灾流程。与专属云组合,可提供云上业务更高等级灾备能力,满足大型企业、政府、金融客户核心业务更高的系统灾备要求。

%title插图%num

使用跨云容灾以及云上容灾方案,可以实现数据库主备容灾、应用主备容灾以及应用层同城双活。

%title插图%num

为何是华为云?
华为云Multi cloud混合云灾备方案*不是空穴来风,它来源于华为自身十几年大规模灾备的实践经验以及深耕企业级容灾市场十余年的技术及方案积累。在这些经验和技术的积累上,结合基于企业云化需求的持续创新,华为云才为企业用户提供了如此值得信赖的完整多云灾备方案。实际上,早在2001年,华为已经开始了IT灾备的建设,至今已经历17个年头,在这17个年头,华为在灾备方面积累了丰富的经验。华为内部经常执行带业务的容灾演练,现在,在数据中心相隔1300多公里的情况下,演练涉及切换系统500多个,各系统之间集成关系复杂,切换系统的数据量达到10PB级,单系统*大数据量100T以上。整个切换过程,核心系统2小时内完成,其他系统4小时内完成,无任何数据丢失和不一致问题。在容灾演练期间,近2500人可以正常使用ERP等相关系统,新增2000多行收入数据,近13万人次正常访问企业BG官网。

华为先是将容灾能力开放到企业私有云领域,HyperMetro数据同步技术脱胎于华为IT容灾实践,经历了8年的研发迭代,基于此项技术的数据中心容灾方案已经在线下为超过3000家大中企业的私有云提供容灾保障。如今华为云将这个能力进一步开放到公有云上,成为业界首家提供云上跨AZ的存储容灾服务的云服务提供商,这些服务,联同数据库复制、应用层复制,为企业用户提供了一个稳定可靠、安全可信的云上容灾解决方案。

创新才是华为的价值所在
华为公司副总裁、华为云BU总裁郑叶来说:“华为发展云服务并不是简单的想成为一个现有供应商的替代者,这对华为没有价值。华为20年发展中始终坚持的一点,就是为客户提供创新的产品解决方案,没有创新就对华为没有价值,不能给客户带来利益,仅仅作为一个价格的替代者,也不是华为存在的价值。”

而华为云Multi cloud混合云灾备方案以及其他众多创新解决方案其实就是华为践行创新精神的具体体现,老孙想,这种创新精神就是华为之所以能够在涉足的各个领域都能够取得*,并傲立于世界IT企业之林的*重要原因吧!
————————————————

原文链接:https://blog.csdn.net/sunhf_csdn/article/details/81209585

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速