当前位置:Gxlcms > 数据库问题 > Redis 专题二: RDB 与 AOF 持久化

Redis 专题二: RDB 与 AOF 持久化

时间:2021-07-01 10:21:17 帮助过:28人阅读

//记录客户端当前正在使用的数据库 redisDb *db; } redisClient; db[0],db[1],db[2],db[n] 客户端通过改变redisClient.db的指针,让它指向服务器中的不同数据库,从而实现切换目标数据库的功能。 这就是SELECT实现的原理 struct redisServer{ //... //一个数组,保存着服务器中的所有数据库 reddisDb *db; //服务器的数据库数量 int dbnum; //... } db[0],db[1],db[2],db[n]

持久化

  • 因为Redis是内存数据库,它将自己的数据库状态存储在内存里面。所以如果不即使的把存放在内存里的数据写入到磁盘,那么一旦服务器宕机数据将全部消失。”持久化”呼之欲出,持久化的实质是将数据写到磁盘,保证数据”持久”可用。

  • 为什么把数据放内存? 这就是Redis与其它关系型数据库的区别,虽然关系型数据库(例如:mysql)也有把部分数据放入到内存,但是仅仅是部分,为了提高缓存命中率mysql会把常用数据放到内存里(buffer cache),这样就可以尽量多的减少数据库去磁盘读取数据的次数,因为在一次物理I/O中,磁盘寻道占据了读取数据所用总时间的绝大一部分,我们想让更多的读写都是逻辑I/O(内存读写)而不是物理I/O。所以Redis的特性适合高频率,高速读写的业务。

    • RDB :
      RDB持久化可以在指定的时间间隔内生成数据的时间点快照

    • 创建新的RDB文件:
      在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Redis 专题二: RDB 与 AOF 持久化

标签:redis   数据库   

人气教程排行