1 Star 0 Fork 31

阿明 / Ebooks

forked from Java精选 / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
史上最全88道Redis面试题,面试官能问的都已经整理汇总!.md 6.56 KB
一键复制 编辑 原始数据 按行查看 历史

史上最全88道Redis面试题,面试官能问的都已经整理汇总!

全部面试题答案,更新日期:01月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

Redis

题1:支持一致性哈希的客户端有哪些?

Redis-rb、Predis等。

题2:Redis 回收进程是如何工作的?

客户端运行新的命令,添加了新的数据时Redis检查内存使用情况,如果大于maxmemory的限制,则根据设定好的策略进行回收。

新的命令被执行等,通过不断地穿越内存限制的边界,不断达到边界后回收到边界以下。

如果一个命令的结果导致大量内存被使用,例如很大集合的交集保存到一个新的Key,不用多久这个使用的内存量就会超越内存限制。

题3:什么是 Redis?

redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,是为了解决高并发、高扩展,大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。但是,它也是不能替代关系型数据库,只能作为特定环境下的扩充。

redis是一个以key-value存储的数据库结构型服务器,它支持的数据结构类型包括:字符串(String)、链表(lists)、哈希表(hash)、集合(set)、有序集合(Zset)等。为了保证读取的效率,redis把数据对象都存储在内存当中,它可以支持周期性的把更新的数据写入磁盘文件中。而且它还提供了交集和并集,以及一些不同方式排序的操作。

题4:Redis 如何处理数据存储实现内存优化?

尽量使用redis的散列表,把相关的信息放到散列表里面存储,而不是把每个字段单独存储,这样可以有效的减少内存使用。

可以通过使用Hash、list、sorted set、set等集合类型数据,因为通常情况下很多小的Key-Value可以用更紧凑的方式存放到一起。尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。

比如web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是把这个用户的所有信息存储到一张散列表中。

题5:Redis 集群之间是如何复制的?

异步复制。

题6:Redis 持久化数据如何实现扩容?

Redis当做缓存使用时,可以通过一致性哈希实现动态扩容缩容。

Redis当做持久化存储数据使用时,必须使用固定的keys-to-nodes映射关系,节点的数量一旦确定不能变化。否则的话(即Redis节点需要动态变化的情况),必须使用可以在运行时进行数据再平衡的一套系统,而当前只有Redis集群可以做到这样。

题7:Redis 事务支持隔离性吗?

Redis是单进程程序且保证在执行事务时,不会对事务进行中断,事务可以运行直到执行完所有事务队列中的命令为止。因此,Redis的事务是总是带有隔离性的。

题8:Redis 如何测试连通性?

redis中使用ping ip命令测试连通性。

方式一:使用ping指令

redis-cli -h host -p port -a password
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

方式二:Java代码中实现Redis连通性测试,可以使用Redis客户端类库包里的api发送ping指令

//连接redis
Jedis jedis=new Jedis("127.0.0.1",6379);
//查看服务器是否运行,打出 pong 表示OK
System.out.println("ping redis:" + jedis.ping());

题9:Redis 将内存占满后会发生什么问题?

如果达到设置的上限,Redis的写命令会返回错误信息,但是读命令还可以正常返回。

可以配置内存淘汰机制,当Redis达到内存上限时会冲刷掉旧的内容。

题10:Redis 如何设置密码及验证密码?

Redis设置密码

config set requirepass 123456

Redis授权密码

auth 123456

题11:jedis-和-redisson-有什么优缺点

题12:redis-事务能否保证原子性是否支持回滚吗

题13:什么是缓存雪崩何如避免

题14:redis主要占用什么物理资源

题15:redis-中分布式锁有什么缺陷性问题

题16:为什么-redis-需把数据放到内存中 

题17:redis-和-memcached-都有哪些区别

题18:redis-过期键都有哪些删除策略

题19:redis-是单线程的如何提高多核-cpu-的利用率

题20:redis-各数据类型最大容量是多少

题21:redis-集群最大节点个数是多少

题22:redis-官方为什么不提供-windows-版本

题23:redis-支持那些数据类型

题24:redis-回收使用的是什么算法-

题25:redis-中如何解决-the-tcp-backlog-setting-of-511-cannot-be-enforced-告警问题

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/AminDev/ebooks.git
git@gitee.com:AminDev/ebooks.git
AminDev
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891