当前位置: 首页 > wzjs >正文

企业网站维护工作计划房产网站推广方法

企业网站维护工作计划,房产网站推广方法,seo优化是指通过研究搜索引擎排名规则,手机网站设计咨询#作者:任少近 文章目录 前言Redis的持久化机制RDBAOF Redis save和bgsave的区别redis数据迁移redis单机-单机数据迁移redis 主从-主从数据迁移redis 单机-cluster数据迁移redis cluster –redis cluster数据迁移 前言 Redis数据迁移是常见需求,主要包括…

#作者:任少近

文章目录

  • 前言
  • Redis的持久化机制
    • RDB
    • AOF
  • Redis save和bgsave的区别
  • redis数据迁移
    • redis单机-单机数据迁移
    • redis 主从-主从数据迁移
    • redis 单机-cluster数据迁移
    • redis cluster –redis cluster数据迁移

前言

Redis数据迁移是常见需求,主要包括四种场景:
单机到单机迁移
主从到主从迁移
单机到集群迁移
集群到集群迁移
每种方案都需考虑数据量、停机窗口和业务影响,建议在非高峰时段进行迁移并充分测试。

Redis的持久化机制

RDB

RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。Redis 默认方式。
在这里插入图片描述
RDB优势:
利于备份:一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。
数据恢复便捷:对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。
性能最大化:对于Redis的服务进程而言,在开始持久化时,它唯一需要做的只是fork出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行IO操作了。
相比AOF数据量小:相比于AOF机制,如果数据集很大,RDB的启动效率会更高。

RDB劣势:
数据的完整性和一致性不高:系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。
备份时占用资源:因为Redis 在备份时会独立创建一个子进程,将数据写入到一个临时文件,最后再将临时文件替换之前的备份文件,因为bgsave每次运行都要执行fork操作创建子进程,频繁执行成本过高。

RDB持久化配置:

  1. 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
    save
    Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
    #分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。

  2. 指定本地数据库文件名,默认值为dump.rdb
    dbfilename dump.rdb

  3. 指定本地数据库存放目录
    dir ./

AOF

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
在这里插入图片描述
AOF的优势:
数据的完整性和一致性更高:Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事实上,每秒同步也是异步完成的,其效率也是非常高的,所差的是一旦系统出现宕机现象,那么这一秒钟之内修改的数据将会丢失。而每修改同步,我们可以将其视为同步持久化,即每次发生的数据变化都会被立即记录到磁盘中。
AOF的劣势:
占用磁盘空间大,数据恢复速度慢:对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
运行效率低,频繁同步:根据同步策略的不同,AOF在运行效率上往往会慢于RDB。

AOF持久化配置:
1.指定是否在每次更新操作后进行日志记录,因为的数据会在一段时间内只存在于内存中,可能会在断电时导致一段时间内的数据丢失。默认为no
appendonly no

  1. 指定更新日志文件名,默认为appendonly.aof
    appendfilename appendonly.aof

  2. 指定更新日志策略,共有3个可选值:
    no:表示等操作系统进行数据缓存同步到磁盘(快)
    always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    everysec:表示每秒同步一次(折衷,默认值)
    appendfsync everysec

Redis save和bgsave的区别

save
Reids save命令执行一个同步保存操作,将当前Redis实例的所有数据快照(snapshort)已RDB文件的方式保存到磁盘

bgsave
bgsave执行后,会立刻返回OK,Redis 会fork一个子进程,原来的redis主进程继续执行后续操作,新fork的子进程负责将数据保存到磁盘,然后退出

区别:
save同步阻塞主进程,只有等save完后成,才能进行新操作(阻塞, 只管保存快照,其他的等待)
bgsave 是fork的子进程,非阻塞,等执行完后会通知主进程,然后关闭子进程

redis数据迁移

redis单机-单机数据迁移

在这里插入图片描述
迁移环境如下:

# A服务器
***.***.*.171 midware-171 
# B服务器
***.***.*.172 midware-172 r

方法1
A 服务器
127.0.0.1:6379> info

# Cluster
cluster_enabled:0# Keyspace
127.0.0.1:6379>

B服务器
127.0.0.1:6379> info

# Cluster
cluster_enabled:0# Keyspace
127.0.0.1:6379>

在A服务器上执行脚本生成10000条数据
在这里插入图片描述
在这里插入图片描述
在A服务器上手动保存数据
127.0.0.1:6379> bgsave
Background saving started
查看数据目录
[root@midware-171 data]# ls
appendonly.aof dump.rdb

停止A服务器
127.0.0.1:6379> exit
[root@midware-171 redis]# ps -ef|grep redis
root 13566 1 0 11:29 ? 00:00:06 bin/redis-server 0.0.0.0:6379
root 23799 7625 0 11:45 pts/1 00:00:00 grep --color=auto redis
[root@midware-171 redis]# kill -9 13566

停止B服务器
[root@midware-172 redis]# ps -ef|grep redis
root 9812 1 0 11:36 ? 00:00:00 bin/redis-server 0.0.0.0:6379
root 9916 8451 0 11:46 pts/1 00:00:00 grep --color=auto redis
[root@midware-172 redis]# kill -9 9812

将数据文件从A服务器 拷贝 到 B服务器
[root@midware-171 data]# scp appendonly.aof midware-172:/home/test/redis/data/
appendonly.aof 100% 349KB 79.6MB/s 00:00

[root@midware-171 data]# scp …/conf/redis.conf midware-172:/home/test/redis/conf/
redis.conf

启动B服务器服务
[root@midware-172 redis]# bin/redis-server ./conf/redis.conf
查看数据
在这里插入图片描述
在这里插入图片描述
方法2:
停止B服务器,并清除数据
[root@midware-172 redis]# ps -ef|grep redis
root 10042 1 0 11:55 ? 00:00:01 bin/redis-server 0.0.0.0:6379
root 10096 10047 0 11:55 pts/0 00:00:00 ./bin/redis-cli
root 10316 8451 0 12:16 pts/1 00:00:00 grep --color=auto redis
[root@midware-172 redis]# kill -9 10042
[root@midware-172 redis]# rm -rf /data/*
在这里插入图片描述
在这里插入图片描述
拷贝数据到B机

[root@midware-171 data]# scp dump.rdb midware-172:/home/test/redis/data/
dump.rdb

更改B机配置文件

[root@midware-172 redis]# cat conf/redis.conf
appendonly no

启动redis B服务

[root@midware-172 redis]# bin/redis-server ./conf/redis.conf
127.0.0.1:6379> info

更改日志存储方式

127.0.0.1:6379> CONFIG get appendonly
1) "appendonly“     2) "no"
127.0.0.1:6379> CONFIG set appendonly yes
OK
127.0.0.1:6379> CONFIG get appendonly
1) "appendonly“    2) "yes"

更改B机配置文件

[root@midware-172 redis]# cat conf/redis.conf
appendonly yes

查看B机key 总数

# Cluster
cluster_enabled:0
# Keyspace
db0:keys=11002,expires=0,avg_ttl=0
127.0.0.1:6379>

在这里插入图片描述

redis 主从-主从数据迁移

在这里插入图片描述
注:
主从节点迁移,把所有节点当作单机节点来迁移即可
如果是 主从+哨兵 忽略 sentinel 节点,将哨兵拓扑当成普通的主从节点即可

redis 单机-cluster数据迁移

在这里插入图片描述
迁移环境如下:

# A服务器
***.***.*.171 midware-171 # Redis cluster B主					从
***.***.*.171:7001 ***.***.*.172:7002
***.***.*.172:7001 ***.***.*.173:7002
***.***.*.173:7001 ***.***.*.171:7002

在A服务器上执行脚本生成12000条数据

[root@midware-171 test]# redis/bin/redis-cli info# Cluster
cluster_enabled:0# Keyspace
db0:keys=12000,expires=0,avg_ttl=0
[root@midware-171 test]#

1.查看Redis cluster B 状态
在这里插入图片描述
2、查看并记录集群信息,记录集群id ,ip,角色。后续会使用
在这里插入图片描述
记录每个主节点的slot 数量
在这里插入图片描述
3、迁移其他主节点的slot到其中一个主节点

redis-cli -a 123456 --cluster reshard ***.***.*.171:7001 --cluster-from acb7d8390fc2cf2dac0bc07d38ddeb6c7f474109 --cluster-to d190bb0128ff2101f3fdc13561b8edc6755448fa --cluster-slots 5461 --cluster-yesredis-cli -a 123456 --cluster reshard ***.***.*.171:7001 --cluster-from dccce6ccb5ff7152c959b0eda8c655c4eff053c3 --cluster-to d190bb0128ff2101f3fdc13561b8edc6755448fa --cluster-slots 5462 --cluster-yes#删除原主节点 
[root@midware-171 redis]# bin/redis-cli -a 123456 --cluster del-node ***.***.*.171:7001 acb7d8390fc2cf2dac0bc07d38ddeb6c7f474109#重新加入 master 节点 ***.***.*.172:7001 是新加入节点,***.***.*.171:7001 是集群中已存在的节点
redis-cli -a 123456 --cluster add-node ***.***.*.172:7001 ***.***.*.171:7001#删除从节点
[root@midware-171 redis]# bin/redis-cli -a 123456 --cluster del-node ***.***.*.171:7001 7a82ca3e8e3a71d8fe12572117218fb00e72535d#重新加入节点***.***.*.172:7001,且设置为7a82ca3e8e3a71d8fe12572117218fb00e72535d
redis-cli -a 123456 --cluster add-node ***.***.*.172:7001 ***.***.*.171:7001 --cluster-slave --cluster-master-id acb7d8390fc2cf2dac0bc07d38ddeb6c7f474109

… 同样处理另外二个节点
再次查询cluster 节点信息,已经和之前一致

在这里插入图片描述
4、关闭集群。放入单机redis生成的 appendonly.aof 到槽位所在的 master节点,且只启动该节点redis,观察数据是否正确导入。

redis-cli -a 123456
查看数据是否导入
[root@midware-171 redis]# bin/redis-cli -a 123456 -h  ***.***.*.171 -p 7001 info# Cluster
cluster_enabled:1# Keyspace
db0:keys=12000,expires=0,avg_ttl=0

5.重新分配slot

[root@midware-171 redis]# redis-cli -a 123456 --cluster reshard ***.***.*.171:7001 --cluster-from d190bb0128ff2101f3fdc13561b8edc6755448fa --cluster-to acb7d8390fc2cf2dac0bc07d38ddeb6c7f474109 --cluster-slots 5462 --cluster-yes[root@midware-171 redis]# redis-cli -a 123456 --cluster reshard ***.***.*.171:7001 --cluster-from d190bb0128ff2101f3fdc13561b8edc6755448fa --cluster-to dccce6ccb5ff7152c959b0eda8c655c4eff053c3 --cluster-slots 5461 --cluster-yes

在这里插入图片描述
查看结果

[root@midware-171 redis]# bin/redis-cli -a 123456 -h  ***.***.*.171 -p 7001 info
# Keyspace
db0:keys=3988,expires=0,avg_ttl=0[root@midware-171 redis]# bin/redis-cli -a 123456 -h  ***.***.*.172 -p 7001 info
# Keyspace
db0:keys=3996,expires=0,avg_ttl=0[root@midware-171 redis]# bin/redis-cli -a 123456 -h  ***.***.*.173 -p 7001 info
# Keyspace
db0:keys=4016,expires=0,avg_ttl=0

三节点keys 3988+3996+4014=12000 迁移完成

redis cluster –redis cluster数据迁移

在这里插入图片描述
迁移环境如下:

集群模式:

# Redis cluster A主			从
***.***.*.171:7001 ***.***.*.172:7002
***.***.*.172:7001 ***.***.*.173:7002
***.***.*.173:7001 ***.***.*.171:7002# Redis cluster B主			从
***.***.*.171:8001 ***.***.*.172:8002
***.***.*.172:8001 ***.***.*.173:8002
***.***.*.173:8001 ***.***.*.171:8002

对应每个卡槽分配的位置,相对应
Cluster A

在这里插入图片描述
Cluster B
在这里插入图片描述
查看集群每个节点的状态
Cluster A
在这里插入图片描述
Cluster B
在这里插入图片描述
拷贝所有节点数据文件到目标节点
[root@midware-171 redis]# cp data/7001/appendonly.aof …/redis02/data/8001/
[root@midware-171 redis]# cp data/7002/appendonly.aof …/redis02/data/8002/
[root@midware-172 redis]# cp data/7001/appendonly.aof …/redis02/data/8001/
[root@midware-172 redis]# cp data/7002/appendonly.aof …/redis02/data/8002/
[root@midware-173 redis]# cp data/7001/appendonly.aof …/redis02/data/8001/
[root@midware-173 redis]# cp data/7002/appendonly.aof …/redis02/data/8002/
动所有节点如下:
[root@midware-171 redis02]# bin/redis-server conf/redis_8001.conf
[root@midware-171 redis02]# bin/redis-server conf/redis_8002.conf
[root@midware-171 redis02]# ps -ef|grep redis
root 2346 1 0 09:53 ? 00:00:00 bin/redis-server 0.0.0.0:8001 [cluster]
root 2352 1 0 09:53 ? 00:00:00 bin/redis-server 0.0.0.0:8002 [cluster]
同样启动 节点2,节点3主从服务

查看所有keys
Cluster A
在这里插入图片描述
Cluster B
在这里插入图片描述


文章转载自:

http://0oVSwE4W.kqpsj.cn
http://GLvyW1cg.kqpsj.cn
http://dOvGROZZ.kqpsj.cn
http://EkxkH1a8.kqpsj.cn
http://a5YH65F1.kqpsj.cn
http://DuXGJp2l.kqpsj.cn
http://caWqxOLI.kqpsj.cn
http://3nTbEhWu.kqpsj.cn
http://ISweTO6y.kqpsj.cn
http://uYjNtwc4.kqpsj.cn
http://6FnuYiNp.kqpsj.cn
http://NsZmCw8V.kqpsj.cn
http://ItQudyNL.kqpsj.cn
http://rtwLme0K.kqpsj.cn
http://kUrM2JaZ.kqpsj.cn
http://2e90Js4n.kqpsj.cn
http://ywpj5wCi.kqpsj.cn
http://zsonfPk1.kqpsj.cn
http://KvUcE2QF.kqpsj.cn
http://LQWKCYKi.kqpsj.cn
http://02OSXcT6.kqpsj.cn
http://dHkP1Vvv.kqpsj.cn
http://Yd6IQRyt.kqpsj.cn
http://8NZWqyMe.kqpsj.cn
http://6ApP0qoL.kqpsj.cn
http://61Rg9Pek.kqpsj.cn
http://MqiMakhR.kqpsj.cn
http://4NoUvqDq.kqpsj.cn
http://UZP6tWDW.kqpsj.cn
http://kL3WjMIg.kqpsj.cn
http://www.dtcms.com/wzjs/770327.html

相关文章:

  • 淘宝网站内站建设wordpress 字号
  • 福田做网站优化乐云seo星宿网站建设
  • 建卖手机网站东莞网站建设设计价格
  • 北京企业网站seo平台浏览器老是出现站长工具
  • 网站建站和维护成都 建设网站
  • 怎样做团购网站网站建设+人员+年终总结
  • 主流门户网站公司简介样本
  • 手机网站总是自动跳转奖励网站代码
  • 建设网站要不要工商执照公司网站管理维护
  • 长沙河西网站建设seo系统是什么
  • 装修公司企业网站开发规划猫眼网站建设
  • 廊坊商昊网站建设石家庄今天又发现一例
  • 企业网站未来发展趋势设计师个人作品展示网站
  • 东莞市专注网站建设梅州做网站
  • 永宝网站建设招聘信息怎么做企业网站推广
  • 网站优化建设广州郑州网站推广排名公司
  • 十大网站黄页的免费网站制作公司的流程
  • 做网站投入小程序要钱吗
  • dede网站源码 如何修改腾讯云服务器WordPress
  • 做设计接私活的网站网站建设费用大概多少钱
  • 网站域名申请流程网络销售培训学校
  • 网站什么语言好免费建站网站 百度一下
  • 接手一个新的网站应该怎样做易班网站的建设内容
  • 做网站需要什么执照网站建设 域名主机
  • wordpress子目录建站网页制作与设计是前端吗
  • 营业执照申请网站网站建站公司一站式服务
  • 广州机械网站开发一般通过面试多久上班
  • 三亚网站建设价格公众号怎么运营
  • 兰州网站建设企业名录广东建设工程交易中心网站
  • 晋州有做网站的吗360网站建设官网