Redis从硬盘加载数据存储(redis读硬盘)
到内存
Redis是一种开源的内存数据库,能够将数据存储在内存中,可以快速读取和写入,极大提高系统性能。大多数时候不用担心跑出系统内存,因为Redis有一个重要的功能就是从硬盘加载数据到内存中。
当Redis初始化启动时,它会尝试从指定的数据文件加载数据到内存中,即“持久化”(persistence)。如果成功,Redis就可以将更新的数据写到硬盘上,确保Redis重启后,这些数据依然会保留。
如果 Redis需要从硬盘加载数据到内存,它会使用RDB技术。RDB是一种基于快照的技术,Redis会在指定的时间点(dump.rdb文件)保存redis的快照,如果服务器重新启动,Redis会从最新的RDB文件中读取数据。
为了创建一个dump.rdb文件,可以使用save或bgsave命令:
Save命令会阻塞Redis,即上述命令执行完之后,才会继续处理新的请求,从某种程度上来说,save等于在Redis上直接拧中断电源。
而bgsave命令则是通过启动一个单独的子进程来完成dump.rdb的创建,父进程仍然可以处理客户端请求,因此,当用bgsave命令时,不会阻塞Redis。
一旦dump.rdb文件创建完成,Redis会开始从文件中加载数据到内存,如果Redis节点之间需要进行数据同步,只能通过将dump.rdb文件复制到其他节点上来实现,不能使用RDB文件中的数据。
因此,从硬盘加载数据到内存是Redis不可缺少的一步,能够提高Redis的性能,给用户带来更好的体验。