关于数据库的存储与读取的问题

关于数据库的存储与读取的问题

老师,Redis是利用内存读取来优化程序的执行速度的,因为传统的MySQL等数据库是直接在磁盘上存储读取数据的,对于数据量较大的信息来说,速度上有劣势,但我还是对数据库的存储和读取有一些疑惑:

  1. 对于Redis来说,既然是在内存中进行读写来提高效率,因为一台电脑的内存是十分有效的,它是如何把数据放到磁盘中而进行持久化的呢?不是说把数据放到缓存中么,怎么转移到磁盘去了?

  2. 另外,如果Redis是把数据放到磁盘上实现持久化的话,那在此启动程序读取旧数据的时候不是应该从磁盘中拿数据的么?这样的话,又怎么能做到在内存中获取数据来提高速度呢?

  3. 因为数据是存储到磁盘上的,所以还是要占据一部分的磁盘空间,怎么知道自己的哪些数据库的数据是存储在磁盘的什么地方啊?如果要卸载清空某个数据库的话,会把它内部存储在磁盘的数据一并删除么?如如果是这样的话,那数据库需要更新的时候岂不是很不方便

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,将磁盘中的数据读取到内存中的速度会很快,不会花费很多时间。另外在Redis中,可以通过配置文件,每隔一段时间,将内存中的数据写入磁盘,进行持久化操作。

祝:学习愉快~

好帮手慕阿满 2019-07-25 11:47:45

同学你好,关于同学的问题:

1、Redis的存储分为内存存储、磁盘存储和log文件三部分,启动Redis后,Redis可以从磁盘将数据加载到内存中,这些可以通过配置文件对其进行配置。

2、启动Redis后可以从磁盘将数据加载到内存中,在内存中读取数据来提高速度。

3、数据在磁盘中的位置,是根据配置文件中配置的来决定的,比如Redis.conf配置文件中,设置dir ./就是将数据存储在该目录下,dbfilename dump.rdb就是存储数据的文件名。如果要清空某个数据库,会将存储在磁盘的数据删除。所以在更新时,应该先删除缓存,然后再更新。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 哆丶哆 #1
    Redis是启动后把数据从磁盘上取出的话,那这样是会损耗一点内存咯,如果数据量庞大,有些数据不再内存还在磁盘内,当我们想读取磁盘内的数据的时候,Redis不就没有提高速度的优势了么? 另外,Redis既然是内存中进行读写,它如何将用户输入的数据保存在磁盘上的呀?
    2019-07-25 13:22:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师