`

面试请讲讲Redis

阅读更多

面试请讲讲Redis

 

1、Redis 是什么 : 一个开源的、高性能、内存数据库

                           开源---- 使用多 发展好 

                           高性能--- 官网说 能到 10万 qps

                           内存------  主要把数据放到内存里的

                           数据库---- kv  支持复杂的数据结构  list set zset hash

 

2、做什么(场景)

                          缓存--- 放mysql之前

                          前n个评论 

                          top N

                          定期失效

                    发布/订阅

                         共享session

                         分布式锁

 

3、部署结构

                  3.1   单机

                  3.2   主从  

                  3.3  哨兵  --v2.8       自动失败转移 通知客户端

                  3.4 集群  

                                  3.4.1  虚拟槽 slot 16383   容易扩展

                                  3.4.2   key批量操作支持有限。如mset、mget

                                             key事务操作支持有限--不支持夸节点事物

                                             不支持多数据库空间。单机下的Redis可以支持16个数据库,

                                                集群模式下只能使用一个数据库空间,即db0

 

 4、问题

              4.1  缓存穿透

                                     什么是缓存穿透 :

                                      处理: 对查询结果为空的情况也进行缓存、对一定不存在的key进行过滤

              4.2  缓存雪崩  

                              当缓存服务器重启或者大量缓存集中在某一个时间段失效,

                              这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。

                              处理 :  Redis高可用 、

                                          不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀

                                          限流 降级  隔离

5、你自己遇到的 Redis相关问题:

                jedis 没关闭连接问题

 

6、 其他可能面试问题:

 

一个字符串类型的值能存储最大容量是多少?

512M

Redis集群最大节点个数是多少?

16384个。

Redis集群如何选择数据库?

Redis集群目前无法做数据库选择,默认在0数据库。

Redis事务相关的命令有哪几个?

MULTI、EXEC、DISCARD、WATCH

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics