https://blog.csdn.net/u010648555/article/details/73433717
老哥,我问的是redis内存数据如何持久化为.rdb文件,而不是持久化的时机以及如何恢复数据。因为我要参照这个对另外一个服务持久化。
redis服务器程序会自动对数据库做一次遍历,然后这个快照会生成一个rdb文件。
这个持久化机制叫做SNAPSHOT
并且每次Redis重启会自动加载这个文件,这个对应的文件可以在redis配置中进行配置
理论上来说,redis是将数据存储在内存中的,而dump.rdb是根据配置的条件在规定的时间将内存内的数据保存到文件中。所以如果要详细了解redis的dump文件的格式,建议可以阅读redis的源码。
Redis自身配置会有一个定时任务,按照一定时间周期将服务中的所有数据写入磁盘,也就是内存快照。当然这个存储的过程楼主可以去查阅资料,感兴趣的话我也可以贴给你。
不过RDB这种方式是有数据丢失的风险的,使用AOF会更安全
redis中有五种对象,字符串对象,列表对象,哈希对象,集合对象和有序集合对象,每一种对象又有不同的编码方式,其中字符串对象有三种编码,其它对象的编码方式都只有两种,如:哈希对象的编码方式有压缩列表编码和字典编码。在RDB持久化时,会针对数据不同而采用不同的格式进行存储。在载入RDB时又根据这些格式来复线出数据库。具体可以参考https://blog.csdn.net/qq_34228327/article/details/86749875