千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  面试技巧  >  Java求职面试之常见Redis面试题及答案

Java求职面试之常见Redis面试题及答案

来源:千锋教育
发布人:千锋郑州
时间: 2021-05-17 15:51:49

  Redis是目前各大企业都在使用的人们技术,也是企业选拔人才时考核的一个难题。有很多同学只是简单了解Redis的应用,但对于为什么要用Redis以及企业面试中有关Redis的问题却答不上来。接下来千锋郑州就给大家简单分析一下Java求职面试之常见Redis面试题及答案。

image/20200304/17b56909797a9a97e6ceef98868704ab.png

  为什么使用Redis?

  项目中使用Redis,主要考虑性能和并发两个方面。在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用Redis做一个缓冲操作,让请求先访问到Redis,而不是直接访问数据库。不过,Redis也有慢查询操作。根据交互效果的不同,响应时间没有固定标准。在理想状态下,我们的页面跳转需要在瞬间解决,对于页内操作则需要在刹那间解决。

  Redis的数据类型有哪些?

  数据类型:

  1)String:一般做一些复杂的计数功能的缓存;

  2)Hash:存储二维数据或对象;

  3)List:可实现队列,栈及有序的数据存储;

  4)Set:常用于黑名单,微信抽奖等功能,应用场景多变;

  5)SortedSet:做排行榜应用,取TOPN操作;延时任务;做范围查找。

  Redis持久化机制是什么?

  Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。

  实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。

  RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即Snapshot快照存储,对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。( 快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。)

  AOF:Redis会将每一个收到的写命令都通过Write函数追加到文件最后,类似于MySQL的binlog。当Redis重启是会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。

  当两种方式同时开启时,数据恢复Redis会优先选择AOF恢复。

  单线程的Redis为什么这么快?

  1)纯内存操作

  2)单线程操作,避免了频繁的上下文切换

  3)采用了非阻塞I/O多路复用机制

  Memcache与Redis的区别都有哪些?

  1)存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,redis可以持久化其数据。

  2)数据支持类型 memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储。

  3)使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。Redis直接自己构建了VM机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

  4)value 值大小不同:Redis 最大可以达到1gb;memcache只有1mb。

  5)redis的速度比memcached快很多

  6)Redis支持数据的备份,即master-slave模式的数据备份。

  如果你想学习Java编程开发,又没有什么编程基础,可以通过专业的方式学习Java编程,专业的学习能帮助零基础的人快速入门Java。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>