配置文件详解、RDB 及 AOF 备份机制(二)|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习配置文件详解、RDB 及 AOF 备份机制(二)

开发者学堂课程【Redis 入门实战演练: 配置文件详解、RDB 及 AOF 备份机制(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/653/detail/10834


配置文件详解、RDB 及 AOF 备份机制(二)


4.repl-diskless-sync-delay 30

#diskless**复制的延迟时间**,设置0为关闭,在延迟时间内连接的新客户端,会一起通过 disk 方式同步数据,但是一旦复制开始还没有结束之前,master 节点不会再接收新 slave 的复制请求,直到下一次同步开始。

文件 dump 之后,会延迟30秒到slave,假如30秒内第三个 slave 出现,30秒后同步数据的时候,再与 master 4G dumo,rdp连接。

5.repl-ping-slave-period 10

#slave 根据 master 指定的时间进行周期性的 PING 监测

6.repl-timeout

60#复制连接的超时时间,需要大于 repl-ping-slave-period,否则会经常报超时

7.repl-disable-tcp-nodelay no

#在socket 模式下是否在 slave 套接字发送 SYNC 之后禁用 TCP_NODELAY,如果选择"yesRedis将使用更少的 TCP****包和带宽来向slaves***发送数据,但是这将使数据传输到**slave****上有延迟,因为会做合并,把第一个报文和第二个报文进行合并,合成为一整个报文。Linux****内核的默认配置会达到4O***毫秒,如果你选择了"no"**数据传输到 salve**的延迟将会减少但要使用更多的带宽。

8.Repl-ping-slave-period 10 

让 slave 每间隔10s 让 master 同步一次,向 slave 进行检测,让 slave 去 ping  master,让任务交给 master。

9.repl-backlog-size 512mb

#复制缓冲区内存大小,只有在 slave 连接之后才分配内存。数值不要设置的太大,在 master 和 slave 同步数据的时候写数据放到

10.repl-backlog-size

master 和 slave 同步数据的时候,不能禁止程序写入,写完数据之后,master 放入缓冲区,同步给 slave。4个G是 redis 用的,剩下的512mb 是给缓冲区使用的。要给系统留足够的缓存空间。

11.repl-backlog-ttl 3600

#多次时间 master 没有 slave 连接,就清空 backlog 缓冲区。当 redis 的4G内存不够时,如果需要8G 内存的话,这时候找一个物理主机有16G 的主机,redis8 个G,剩下的4个 G 给系统区用,即内核。内核处理某些任务的时候发现系统没有内存了,就把当前系统上占用最大内存的进程撤掉(redis),但是业务会受到影响。

replica-priority 100#当 master 不可用,Sentinel 会根据 slave 的优先级选举一个 master,最低的优先级的 slave,当选 master,而配置成0,永远不会被选举。如果想设置成自动选举的话,就写成一样的100,会产生一种内部的选举策略,会选举一个机器,从而推选出 master。

12.requirepass foobared 

#设置 redis 连接密码 rename-command #重命名一些高危命令。可以设置成rename - c ommand CONFIG b840fc02d524045429941cc15f59e41cb7be6c52,但是这个命令有一定的危险性,这个命令就算别人拿到 redis 的服务密码,可以把这个命令进行重新命名。

[ rootredis-serverl ~]#

[ root@redis-serverl ~]#

[ rootaredis-serverl ~]# redis-cli

127. 0.0.1:6379> SET key1 valuel

OK

127.0.0.1:6379> FLUSHALL

OK

127.0.0.1:6379> FLUSHALL

OK

1270.0.1:6379>

127.0.0.1:6379> exit

[root@redis-serverl ~]# redis-cli

127.0.0.1:6379> FLUSHALL

(error) ERR unknownommand、 FLUSHALL,with args beginning with:

127.0.0.1:6379>linux39

Ok

FLUSMALL 就是对某些命令重命名。

13.maxclients 10000

#Redis最大连接客户端

14.maxmemory

#最大内存,单位为 bytes 字节,8G 内存的计算方式8(G)1024(MB)1024(KB)*1024(Kbyte),需要注意的是 slave 的输出缓冲区是不计算在 maxmemory 内。

[ root@172~]# bcbc 1.06.95

Copyright 1991-1994,1997,1998,2000,2004,2006 Free Software Foundation,Inc .This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty ' .

计算字节数:

2*1024

2048

2*1024*1024

2097152

2*1024*1024*1024

2147483648

3*1024*1024*1024

3221225472

Maxmemory 2147483648

设置好之后进行关机,关机后把内存设置的大一点,

edis-server1 redis-4.0.14]#poweroff

Connection closed by foreign host.

Disconnected from remote host(172.31.7.101-server1) at 16:42:19.

Type `help' to learn how to use Xshell prompt.

Connecting to 172.31.7.101:22...

Connection established.

To escape to local shell, press 'Ctrl+Alt+] ' .

WARNING!The remote sSH server rejected x11 forwarding request.

Last login: Fri Feb7 19:45:072020 from 172.31.0.1

15.appendonly no

#是否开启 AOF 日志记录,默认 redis 使用的是 rdb 方式持久化,这种方式在许多应用中已经足够用了,但是redis如果中途宕机,会导致可能有几分钟的数据丢失(取决于dumpd数据的间隔时间),根据 save 来策略进行持久化,Append Only File 是另一种持久化方式,可以提供更好的持久化特性,Redis 会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时 Redis 都会先把这个文件的数据读入内存里,先忽略 RDB 文件。

[ root@redis-server1 ~]# ll / apps/ redis/bin/data/ etc/logs/ run/

[ root@redis-server1 ~]# ll / apps/redis/data/total 48

-rw-r--r-- 1 redis redis 32804 Feb8 00:48 appendonly_6379.aof- rw-r--r-- 1 redis redis 10879 Feb 8 00:48 dump_6379.rdb

[root@redis-server1 ~]# ll -h /apps/redis/data/ appendonly_6379.aof

-rw-r--r-- 1 redis redis 33K Feb 8 00∶48 /apps/redis/data/appendonly_6379.aof[root@redis-server1 ~]# file/apps/redis/data/appendonly_6379.aof

/apps/redis/data/appendonly_6379.aof:4SCII text,with CRLF line terminators[root@redis-server1 ~]# head /apps/redis/data/appendonly_6379.aof

*2$6SELECT$249*3$3SET$2k0

appendfilename "appendonly.aof”#AOF文件名

appendfsync everysec #aof 持久化策略的配置,no 表示不执行 fsync,由操作系统保证数据同步到磁盘,always 表示每次写入都执行 fsync,以保证数据同步到磁盘,everysec 表示每秒执行一次 fsync,可能会导致丢失这1s数据。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
NoSQL 安全 关系型数据库
【Redis源码】详细的RDB和AOF持久化过程(五)
【Redis源码】详细的RDB和AOF持久化过程(五)
63 0
|
存储 NoSQL 关系型数据库
Redis的持久化策略(RDB、AOF、RDB-AOF混合持久化)
Redis的持久化策略(RDB、AOF、RDB-AOF混合持久化)
160 0
|
NoSQL Redis
Redis学习笔记-AOF 日志和 RDB快照
Redis学习笔记-AOF 日志和 RDB快照
103 0
|
存储 缓存 NoSQL
AOF和RDB持久化的区别
AOF和RDB持久化的区别
85 0
|
缓存 NoSQL Redis
Redis(二十六)-持久化操作之AOF
上一篇文章我们介绍了 Redis(二十五)-持久化操作之RDB ,这篇文章接着来介绍另一种持久化的方式AOF。
266 0
Redis(二十六)-持久化操作之AOF
|
存储 NoSQL 算法
Redis(二十五)-持久化操作之RDB
我们都知道Redis是纯内存的操作,数据首先被保存到内存中,但是内存中的数据是非持久化数据,即当服务器宕机,或者断电之后,内存中的数据就会丢失。所以数据只有保存到硬盘中才能持久化。Redis中默认的持久化方式是RDB的方式。
188 0
Redis(二十五)-持久化操作之RDB
|
NoSQL Redis 数据安全/隐私保护
Redis如何实现持久化(AOF、RDB、混合模式)的优缺点
Redis如何实现数据不丢失 Redis的读写操作都是在内存中,所以Redis性能才会高,但是当Redis重启后,内存中的数据就会丢失,那为了保存内存中的数据不会丢失,Redis实现了数据持久化机制,会把数据保存到磁盘,这样Redis重启就能够从磁盘恢复原有的数据
249 0
Redis如何实现持久化(AOF、RDB、混合模式)的优缺点
|
存储 缓存 NoSQL
配置文件详解、RDB 及 AOF 备份机制(二)|学习笔记
快速学习配置文件详解、RDB 及 AOF 备份机制(二)
237 0
配置文件详解、RDB 及 AOF 备份机制(二)|学习笔记
|
运维 NoSQL 大数据
持久化-RDB与AOF方案对比|学习笔记
快速学习持久化-RDB 与 AOF 方案对比
持久化-RDB与AOF方案对比|学习笔记
|
存储 NoSQL 应用服务中间件
持久化-RDB 三种启动方式对比与优缺点分析|学习笔记
快速学习持久化-RDB 三种启动方式对比与优缺点分析
持久化-RDB 三种启动方式对比与优缺点分析|学习笔记