
正文
redis做缓存的原理,redis做缓存的好处
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
面试中问到Redis持久化的原理,本篇在做详细解答
1、可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作,快照文件名为dump.rdb。每当Redis服务重启的时候都会从该文件中把数据加载到内存中。在60秒内有10000次操作即触发RDB持久化。
2、RDB 持久化机制 :是对 redis 数据执行周期性的持久化。这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为 dump.rdb。客户端也可以使用save或者bgsave命令通知redis做一次快照持久化。
3、Redis持久化就是把数据保存到磁盘上(可永久保存的存储设备中),以便数据恢复。
4、在redis的配置里有着这样的一段配置:save 900 1save 300 10save 60 10000很关键的一段配置,这时RDB持久化的核心。
5、bgsave是主流的触发RDB持久化方式,它的运作流程如下图:1)执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。
相关问答
Q1: redis源码解读:单线程的redis是如何实现高速缓存的?
先读取nosql缓存层,没有数据再读取mysql层,并写入数据到nosql。nosql层做好多节点分布式(一致性hash),以及节点失效后替代方案(多层hash寻找相邻替代节点),和数据震荡恢复了。
但线程,只能靠单个处理器速度,内存速度,处理器上的缓存速度,总线传输速度。余下的是你的网络IO。但线程高并发完全依赖程序的运行速度。redis这种东西肯定不是但线程的。一个连接就是一个线程,你这样理解应该不准确。
Redis是一种内存高速cache,如果使用redis缓存,那经常被访问的内容会被缓存在内存中,需要使用的时候直接从内存调取,不知道比硬盘调取快了多少倍,并且支持复杂的数据结构,应用于许多高并发的场景中。
redis缓存原理是sql语句时key值,查询结果resultSet是value,当同一个查询语句访问时(select * from t_product),只要曾经查询过,调用缓存直接返回resultSet,节省了数据库读取磁盘数据的时间。
如果把 redis 和客户端放在同一台机器,网络延迟会更小,一般情况下可以打到 60000 次每秒甚至更高,取决于机器性能。锁不是影响性能的主要因素。
redis是基于内存的,内存的读写速度非常快;redis是单线程的,省去了很多上下文切换线程的时间;redis使用多路复用技术,可以处理并发的连接。非阻塞IO内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。
Q2: redis缓存原理
1、redis缓存原理是sql语句时key值,查询结果resultSet是value,当同一个查询语句访问时(select * from t_product),只要曾经查询过,调用缓存直接返回resultSet,节省了数据库读取磁盘数据的时间。
2、Cache作为中间缓存时代,将所有的数据先保存到缓存中,然后再存入mysql中,减小数据库压力,提高效率。但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,缓存只能缓解数据库的读取压力。
3、redis作为一个网络内存缓存数据库,在实现高性能时,主要有4个点。网络高并发,高流量的数据处理。
redis做缓存的原理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于redis做缓存的好处、redis做缓存的原理的信息别忘了在本站进行查找喔。







