Redis面试题及答案
- 格式:pdf
- 大小:864.15 KB
- 文档页数:7


Redis是一个基于内存的高性能key-value数据库。
(有空再补充,有理解错误或缺乏欢送指正)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进展操作,定期通过异步操作把数据库数据flush到硬盘上进展保存。
由于是纯内存操作,Redis的性能格外精彩,每秒可以处理超过10万次读写操作,是性能最快的Key-Value DB。
Redis的精彩之处不仅仅是性能,Redis最大的魅力是支持保存多种数据构造,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性能消息队列效劳,用他的Set可以做高性能的tag 系统等等。
另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。
Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
Redis支持的数据类型Redis通过Key-Value的单值不同类型来区分,以下是支持的类型:StringsListsSets求交集、并集Sorted Set hashes为什么redis需要把全部数据放到内存中?Redis为了到达最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。
所以redis具有快速和数据长久化的特征。
假设不将数据放在内存中,磁盘I/O速度为严峻影响redis的性能。
在内存越来越廉价的今日,redis将会越来越受欢送。
假设设置了最大使用的内存,那么数据已有记录数到达内存限值后不能连续插入值。
Redis是单进程单线程的redis利用队列技术将并发访问变为串行访问,消退了传统数据库串行把握的开销虚拟内存当你的key很小而value很大时,使用VM的效果会比拟好.由于这样节约的内存比拟大.当你的key不小时,可以考虑使用一些格外方法将很大的key变成很大的value, 比方你可以考虑将key,value组合成一个的value.vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数,假设设置为0,那么全部对swap文件的操作都是串行的.可能会造成比拟长时间的延迟,但是对数据完整性有很好的保证.自己测试的时候觉察用虚拟内存性能也不错。
redis面试题及答案Redis是一种开源的内存数据结构存储系统,它被广泛应用于缓存、消息队列、持久化和实时分析等场景。
在面试中,Redis常常成为考察候选人的重要方向。
下面将介绍一些常见的Redis面试题及其答案。
1. Redis的优点有哪些?- 快速:Redis将数据存储在内存中,因此读写速度非常快。
- 支持多种数据结构:Redis支持字符串、哈希表、列表、集合、有序集合等多种数据结构。
- 持久化:Redis提供了持久化选项,可以将数据保存到磁盘上,并在重启后恢复。
- 分布式:Redis支持分布式部署,可以通过Cluster或者Replication 实现高可用性和负载均衡。
- 可扩展性:Redis支持主从复制、读写分离等机制,可以很方便地进行水平扩展。
- 丰富的功能:Redis提供了丰富的功能,如发布订阅、事务、Lua脚本等。
2. Redis的数据结构有哪些?请简要介绍各个数据结构。
- 字符串(String):最基本的数据结构,可以存储字符串、整数或浮点数。
- 哈希表(Hash):由键值对组成的无序散列表,适用于存储对象。
- 列表(List):按照插入顺序排序的字符串列表,支持从两端插入和删除元素。
- 集合(Set):无序且唯一的字符串集合,支持交集、并集、差集等操作。
- 有序集合(Sorted Set):类似于集合,但每个元素都关联了一个分数,可以按照分数排序。
3. Redis的持久化机制有哪些?请简要介绍各个机制。
- RDB(Redis Database):将数据库的快照保存到磁盘上,适用于备份和恢复。
- AOF(Append Only File):将写操作追加到文件末尾,以日志的形式记录数据库状态的变化,适用于数据持久化和持久化后的恢复。
4. Redis的主从复制是什么?请简要介绍主从复制的工作原理。
Redis主从复制指的是将一个Redis服务器的数据复制到其他Redis服务器的过程。
最新版68道Redis面试题汇总(含参考答案)概述1、Redis有哪些优缺点优点读写性能优异,Redis能读的速度是110000次/s,写的速度是81000次/s。
支持数据持久化,支持AOF和RDB两种持久化方式。
支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
∙Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
∙主机宕机,宕机前有部分数据未能及时同步到从机,切换IP 后还会引入数据不一致的问题,降低了系统的可用性。
∙Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。
为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
2、为什么要用Redis/为什么要用缓存主要从“高性能”和“高并发”这两点来看待这个问题。
∙高性能:假如用户第一次访问数据库中的某些数据。
这个过程会比较慢,因为是从硬盘上读取的。
将该用户访问的数据存在数缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。
操作缓存就是直接操作内存,所以速度相当快。
如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可!高并发:直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。
3、为什么要用Redis而不用map/guava做缓存?缓存分为本地缓存和分布式缓存。
redis常见的⾯试题及答案1、什么是Redis?2、Redis相⽐memcached有哪些优势?3、Redis⽀持哪⼏种数据类型?4、Redis主要消耗什么物理资源?5、Redis的全称是什么?6、Redis有哪⼏种数据淘汰策略?7、Redis官⽅为什么不提供Windows版本?8、⼀个字符串类型的值能存储最⼤容量是多少?9、为什么Redis需要把所有数据放到内存中?10、Redis集群⽅案应该怎么做?都有哪些⽅案?11、Redis集群⽅案什么情况下会导致整个集群不可⽤?12、MySQL⾥有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?13、Redis有哪些适合的场景?14、Redis⽀持的Java客户端都有哪些?官⽅推荐⽤哪个?15、Redis和Redisson有什么关系?16、Jedis与Redisson对⽐有什么优缺点?17、Redis如何设置密码及验证密码?18、说说Redis哈希槽的概念?19、Redis集群的主从复制模型是怎样的?20、Redis集群会有写操作丢失吗?为什么?21、Redis集群之间是如何复制的?22、Redis集群最⼤节点个数是多少?23、Redis集群如何选择数据库?24、怎么测试Redis的连通性?25、Redis中的管道有什么⽤?26、怎么理解Redis事务?27、Redis事务相关的命令有哪⼏个?28、Redis key的过期时间和永久有效分别怎么设置?29、Redis如何做内存优化?30、Redis回收进程如何⼯作的?31、Redis回收使⽤的是什么算法?32、Redis如何做⼤量数据插⼊?33、为什么要做Redis分区?34、你知道有哪些Redis分区实现⽅案?35、Redis分区有什么缺点?36、Redis持久化数据和缓存怎么做扩容?37、分布式Redis是前期做还是后期规模上来了再做好?为什么?38、Twemproxy是什么?39、⽀持⼀致性哈希的客户端有哪些?40、Redis与其他key-value存储有什么不同?41、Redis的内存占⽤情况怎么样?42、都有哪些办法可以降低Redis的内存使⽤情况呢?43、查看Redis使⽤情况及状态信息⽤什么命令?44、Redis的内存⽤完了会发⽣什么?45、Redis是单线程的,如何提⾼多核CPU的利⽤率?46、⼀个Redis实例最多能存放多少的keys?List、Set、Sorted Set他们最多能存放多少元素?47、Redis常见性能问题和解决⽅案?48、Redis提供了哪⼏种持久化⽅式?49、如何选择合适的持久化⽅式?50、修改配置不重启Redis会实时⽣效吗?1、什么是Redis?Redis本质上是⼀个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进⾏操作,定期通过异步操作把数据库数据flush到硬盘上进⾏保存。