文章目录
-
-
- 1、什么是Redis?
- 2、Redis与其他key-value存储有什么不同?
- 3、Redis的数据类型?
- 4、使用Redis有哪些好处?
- 5、Redis相比Memcached有哪些优势?
- 6、Memcache与Redis的区别都有哪些?
- 7、Redis是单进程单线程的?
- 8、一个字符串类型的值能存储最大容量是多少?
- 9、Redis持久化机制。
- 10、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
- 11、热点数据和冷数据是什么?
- 12、单线程的redis为什么这么快?
- 13、redis的数据类型,以及每种数据类型的使用场景。
- 14、redis的过期策略以及内存淘汰机制。
- 15、Redis常见性能问题和解决方案?
- 16、为什么Redis的操作是原子性的,怎么保证原子性的?
- 17、Redis事务。
- 18、Redis的持久化机制是什么?各自的优缺点?
- 19、Redis常见性能问题和解决方案:
- 20、redis过期键的删除策略?
- 21、Redis的回收策略(淘汰策略)?
- 22、为什么Redis需要把所有数据放到内存中?
- 23、Redis的同步机制了解么?
- 24、Pipeline有什么好处,为什么要用pipeline?
- 25、是否使用过Redis集群,集群的原理是什么?
- 26、Redis集群方案什么情况下会导致整个集群不可用?
- 27、Redis支持的Java客户端都有哪些?官方推荐用哪个?
- 28、Jedis与Redisson对比有什么优缺点?
- 29、Redis如何设置密码及验证密码?
- 30、说说Redis哈希槽的概念?
- 31、Redis集群的主从复制模型是怎样的?
- 32、Redis集群会有写操作丢失吗?为什么?
- 33、Redis集群之间是如何复制的?
- 34、Redis集群最大节点个数是多少?
- 35、Redis集群如何选择数据库?
- 36、怎么测试Redis的连通性?
- 37、怎么理解Redis事务?
- 38、Redis事务相关的命令有哪几个?
- 39、Redis key的过期时间和永久有效分别怎么设置?
- 40、Redis如何做内存优化?
- 41、Redis回收进程如何工作的?
- 42、都有哪些办法可以降低Redis的内存使用情况呢?
- 43、Redis的内存用完了会发生什么?
- 44、一个 Redis实例最多能存放多少的 keys?List、Set、Sorted Set他们最多能存放多少元素?
- 45、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
- 46、Redis最适合的场景?
- 47、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- 48、如果有大量的key需要设置同一时间过期,一般需要注意什么?
- 49、使用过Redis做异步队列么,你是怎么用的?
- 50、使用过Redis分布式锁么,它是什么回事?
-
- 总结
最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】
完整版Java面试题地址:【2021最新版】Java面试真题汇总
1、什么是Redis?
答:
Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis与其他key-value缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
Redis优势
性能极高–Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型–Redis支持二进制案例的Strings, Lists, Hashes,Sets及Ordered Sets数据类型操作。
原子–Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性–Redis还支持publish/subscribe, 通知,key过期等等特性。
2、Redis与其他key-value存储有什么不同?
答:
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。
Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。
同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
3、Redis的数据类型?
答:
Redis支持五种数据类型: string(字符串)
1.hash(哈希)
2.list(列表)
3.set(集合)
4.及zsetsorted set:(有序集合)。
我们实际项目中比较常用的是string,hash如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。
如果你说还玩过Redis Module,像 BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。
4、使用Redis有哪些好处?
答:
1、速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O1)
2、支持丰富数据类型,支持string,list,set,Zset,hash等
3、支持事务,操作都是