JAVA面试——Redis
1、Redis是什么?都有哪些使用场景? Redis是一个使用C语言开发的高速缓存数据库。 Redis使用场景: 1)记录帖子点赞数、点击数、评论数; 2)缓存近期热帖; 3)缓存文章详情信息; 4)记录用户会话信息。 2、Redis有哪些功能? 1)数据缓存功能; 2)分布式锁的功能; 3)支持数据持久化; 4)支持事务; 5)支持消息队列。 3、Redis和memcache有什么区别? 1)存储方式不同:memcache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小;Redis有部分存在硬盘上,这样能保证数据的持久性。 2)数据支持类型:memcache对数据类型支持相对简单;Redis有复杂的数据类型。 3)使用底层模式不同:它们之间底层实现方式,以及与客户端之间通信的应用协议不一样,Redis自己构建了vm机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。 4)value值大小不同:Redis最大可以达到1GB;memcache只要1MB。 4、Redis为什么是单线程的? 因为cpu不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存或者网络宽带。既然单线程容易实现,而且cpu又不会成为瓶颈,那就顺理成章地采用单线程的方案了。 关于Redis的性能,官方网站也有,普通笔记本轻松处理每秒几十万的请求。