redis第九章 数据库

redis第九章 数据库

 

 

简单知识总结:

1.redis默认会创建16个数据库。

2。切换数据库:默认是0数据库,如果要切换的话 用select 2,就切到2号数据库。

3.redis 每个库中所有的键值对都保存在dict字典中,这个字典称键空间。

4.对key设置有效期,有两个方法。一个是expire命令,一个是setex命令,后者是一个类型限定的命令,只能对字符串设置过期时间。

5.redisDB结构的expires字典保存了数据库中所有键的过期时间,我们称这个字典为过期字典。

6.过期键删除策略:

6.1)定时删除:在给一个键设置有效期的时候,创建一个定时器,让定时器在键的过期时间来临的时候,立即执行对键的删除。但是这样会增加cpu的负担。

6.2)惰性删除:每次对键操作的时候,才会判断该键是否过期。但这样会导致所有过期的键不回被删除,增加硬盘压力。

6.3)定期删除:每隔一段时间,redis会清除过期的键。虽然这种方式减轻了cpu负担,对硬盘压力也减少了,但是存在一个过期的键没有被及时删除的问题,导致脏数据。

7.redis的过期删除策略

redis是使用定期删除和惰性删除结合使用的策略。

8。aof ,rdb 和复制功能对过期键的处理

8.1)生成RDB文件:在执行save ,或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键惊醒检查,如果是过期的key,不回被写入到新的RDB文件中

8.2)载入RDB文件:如果服务器以主服务器模式运行,过期的键不回被载入到数据库中。

如果服务器以从服务器模式运行,RDB中的键都会被载入到数据库中,然后 主从数据库在数据同步的时候,会删除过期键。

 

AOF文件写入:当库中某个键过期,但是并没有惰性删除或者定期删除的时候,aof不回因为这个过期键而产生影响。当过期键被删除,则会记录一条DEL的命令,来记录该键被删除。

AOF重写:已过期键不会被写入到AOF文件中

 

复制

当服务器运行在复制模式下时,从服务器过期键的删除动作由主服务器控制。

1) 当主服务器在删除一个过期键后,会显示地向所有从服务器发送一个DEL命令,告知从服务器删除这个过期键。

2)从服务器在执行客户端发送的读命令时,及时碰到过期键也不会将过期键删除,而是继续返回过期键的值,就像该键没有过期一样。

3)从服务器只有在街道主服务器发来的DEL命令,才会删除键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值