Redis面试题(一)

ⅰ亾dé卋堺 提交于 2020-03-03 15:18:47
  1. Redis是什么?
    答:Redis是一个使用C语言开发的,完全开源免费的,遵守BSD协议的一个高性能key-value数据库。

  2. 什么是BSD协议?
    答:BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

  3. 说说Redis读写速率是多少?
    答: Redis读的速度是110000次/s,写的速度是81000次/s 。

  4. Redis有几种数据类型?
    答:String(字符串),Hash(散列),List(列表),Set(集合),Zset(有序集合),Bitmap(位图),HyperLogLog(超级日志)和Geospatial(地理空间)。

  5. 说说为什么要使用Redis?
    答:首先Redis的数据都是存于内存的,所以读写速度快,其次Redis提供了丰富的数据类型,适用于各种场景,最后Redis的特性丰富,可用于缓存,消息,同时还支持事务,操作是原子性的。

  6. Redis是多线程还是单线程?
    答:Redis是单进程单线程,所有的网络请求模块都使用一个线程处理,所以Redis也是线程安全的,但是Redis其他模块仍用了多个线程。

  7. Redis为什么是单线程的?
    答:因为CPU不是Redis的瓶颈,最有可能成为Redis瓶颈的是机器内存或者网络带宽,而既然CPU不会成为瓶颈,单线程又易实现,自然就采用了单线程的方案。

  8. 单线程的Redis为什么这么快?
    答:Redis是纯内存的操作,同时单线程操作避免了锁竞争,避免了频繁的上下文切换,还采用了非阻塞I/O多路复用机制,节省I/O时间。

  9. Redis是单线程的,那么可以处理高并发请求吗?
    答:可以的,Redis采用的非阻塞I/O多路复用机制再加上单线程避免了资源竞争和上下文切换,又是基于内存的,速度自然快的飞起,要知道并发不是并行,并发是代表一个时间段内同时请求而不是同一时刻同时请求,Redis处理效率够快,自然能够处理高并发请求。

  10. 说说Redis单进程单线程的弊端?
    答:无法发挥出多核CPU的性能,不过可以通过在单机开多个Redis实例来完善。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!