redis
1.redis是什么?redis是C语言写的一个单线程将key-value键值进行存储的高效缓存数据库。
2.redis的数据类型
包含string,list,set, hash
3.缓存雪崩,缓存穿透,缓存预热?
缓存雪崩:是指当前的键值已过期缓存失效,新的缓存还没有到就有大量的哀求进行访问,导致大连访问落到数据库中。
办理方式:通过异步队列防止大量访问哀求一次性并发的落到数据中。
缓存穿透:查询哀求没有查到数据,因为在数据库中也没有该数据,以是redis中查询不到数据。
办理方式:将没有查询到的数据,保持在redis中将value值赋值为null。
缓存预热:在上线前,将需要的数据提进步行缓存到redis。
4.redis是单线程?
是的,重要是redis利用队列技术并发方式以串行化方式的访问哀求。消除传统数据库串行控制开销。
5.redis有哪些好处和优势?
1.redis将数据存储到内容中,进步查询效率。
2.redis通过AOF和RDB恒久化技术,保证数据数据不丢失。
3.redis支持事件,操纵是原子性。
6.redis的恒久式机制是什么,优缺点?
AOF机制:是将redis执行的命令记载到日志中,当redis宕机或停止服务,通过重启服务加载日志文件恢复数据。
长处:数据安全。
缺点:当数据量巨大的时间数据恢复需要大量的时间。
RDB:是将一段时间内存的数据以快照的方式恒久化到磁盘中,生成对应RDB文件。
长处:数据保存完整,方便恢复,只有一个数据文件。
缺点:当在恒久化之前机器宕机,数据就会丢失,不能保证数据的完整性。
7.redis过期键过期删除计谋?
惰性删除:当利用时查询对应的键值,假如发现该键值已经过去,就会将其删除。
定期删除:每隔一段时间就对数据库检查一遍,删除内里的过期键值。
定时删除:在设置键的过期时间的同时,创建一个定时器,让定时器在键值过去来临前删除。
8.redis为什么需要把数据放到内存中?
为了达到高速的查询效率将数据存储到内容中,通过异步的方式将数据存储搭配磁盘,保证redis的高效和数据恒久化。
9.redis哈希槽的概念?
redis集群通过自己引入哈希槽保证数据同等性,集群中一共16384个,通过CRC16和哈希槽进行取模,来确定将数据放入哪一个哈希槽,哈希槽重要是将数据和节点进行映射关联。
10.redis的高可用是如何实现的?
1.保证服务不能停止对外提供查询等一系列服务。
2.保证数据不能丢失,利用RDB和AOF恒久化机制。
1。保证服务不能停;需要以主从的方式部署redis。
主从需要同步数据,其过程如下
1)主从数据库进行毗连,从库将发送哀求给主库。
2)主库会执行bysave命令将数据以RDB的方式将数据进行保存,主库将通过数据同步过程中将新来的写操纵,记载日志文件repl_buffer中,然后发送给从库。
3)从库将文件进行接收,起首会将自己的数据进行清空(初次会进行全量更新),将接收的的数据准备进行同步到数据库。
5)主库会将保存到数据库的命令发送到从库,从库开始进行同步。
一主多从,进行主从数据同步的通过主库压力题目。
一主多从,在主从复制多个从数据库进行数据复制,会导致主库压力太大,当主库的fork线程生成RDB文件的时间,会阻塞主线程的读写操纵的,而且当RDB文件太大,在网络传输是也被阻塞。
一主多从进行主从同步数据造成主库压力题目,以是可以利用主-从-从模式,在主库和从库进行数据同步完成之后,从库可以对从库进行数据库同步,这样就会减缓主库压力。
主从同步的时间网络停止怎么办?
在网络重新毗连的同时,主库和从库进行重新毗连,继续会进行同步,不过通过过程中会接纳增量同步数据,在网络停止的时间,主库会将断联期间期间进行的新的写操纵的数据进行记载到repl_buffer日志文件中,毗连之后,主库会将会将写到之前文件的同步位置和新的文件发送到从库中,从库进行接收同步。
当主从模式,主库假如挂掉怎么办?
这个时间,redis引入了哨兵机制,通过哨兵机制进行 监控redis 重新选主,关照信息。
1)redis的哨兵机制通过一个或多个哨兵事例组成哨兵系统。由它们进行监控redis节点,当哨兵对redis节点发送ping命令,假如redis节点没有回应或者超时回应,这个是哨兵就会对该节点标记为 客观下线,当哨兵系统n/2+1个哨兵对该节点做 客观下线的时间,该节点会被标记主观下线。
2)redis主节点下线之后,哨兵系统会进行重新选主,分为俩阶段 过滤 和 打分;
过滤:对于下线的、网络欠好、老是超时回应的这不良人节点进行过滤;
打分:对于优先级比较高从库进行打分,分数越高则高概率当选主库。
3 关照,会将选好的主库关照给个个从库,也会将主库关照到客户端。
4 会通过哨兵系统中leader进行主从切换。
部署为主从模式的redis,每个节点都有一个全量数据,会浪费内存资源,欠好扩容
这个引入了redis集群部署,数据分布式存储,数据进行切片,这样保存了大量数据,办理扩容题目
哈希槽
重要是将节点和数据事例进行映射,通过crc16算法盘算出一个16bit的值,和16384进行取模,分配搭配对呀哈希槽。
moved重定向和ask重定向
moved重定向:客户端会给redis事例发送一个读写操纵,假如盘算的槽不是在该节点,它就会返回moved重定向错误,moved中带着哈希槽所在的新实例的ip和端口,这就是redis的moved的重定向。
ask重定向:一样平常发生于集群伸缩的时间,集群伸缩会导致槽迁移,当我们去源节点访问时间,此时数据大概已经迁移到目标节点。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]