redis(1)

1、5种数据类型

string

list

hash

set

zset:当zset中的元素较多或成员是比较长的字符串(STS)时,redis就会使用skiplist做为底层实现;skiplist的另一个作用就是用作集群节点中的内部数据结构

2、默认为16个数据库

3、两种持久化策略(rdb和aof)

两者的目的:将redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失

3.1.1 rdb(通过保存数据库中的键值对来记录数据库状态)

rdb生成:可以通过SAVE(服务器进程会阻塞,在这期间服务器进程不能处理任何命令请求)和BGSAVE(会派生出一个子进程,然后子进程负责创建rdb文件)生成rdb文件

rdb载入:载入期间,会一直处于阻塞状态,知道载入完成为止

3.1.2 redis允许用户通过设置服务器配置的save选项,让服务器每隔一段时间自动执行一次BGSAVE,配置文件如下:

save 900 1
save 300 10
save 60 10000

在redis.conf中进行设置,表示每隔900s更新1个或每隔300s更新10个或每隔60s更新10000个时执行一次BGSAVE

3.2.1 aof(通过保存redis服务器所执行的写命令来记录数据库状态)

aof文件的生成:

aof的持久化可以分为三步:append(追加)、文件写入、sync(同步)

append:当aof持久化功能处于打开时,服务器在执行晚一个写命令后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾

文件写入、sync(同步)

 

 

appendfsyncaof持久化的效率aof持久化的安全性
always最低最高
everysec次之次之
no最高最低

 

 

 

 

 

aof文件的载入:红色文件代表步骤

3.2.2 aof rewrite(后台重写)很有意思,这里有一个机制可以学习一下

创建一个新的aof文件来替代现有的aof文件,新旧两个aof文件所保存的数据库状态相同,但新aof文件不回包含冗余命令

在整个aof后台重写的过程中,只有信号处理函数执行时会对服务器进程造成阻塞,在其他时候,aof后台重写都不会阻塞父进程,这将aof重写对服务器性能造成的影响降到了最低

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值