redis | redis可以存多大的数据 | Strings类型:一个String类型的value最大可以存储512M Lists类型:list的元素个数最多为2^32-1个,也就是4294967295个。 Sets类型:元素个数最多为2^32-1个,也就是4294967295个。 Hashes类型:键值对个数最多为2^32-1个,也就是4294967295个。 | |
缓存问题解决 | 1、缓存击穿: 分布式锁 2、缓存穿透:布隆过滤器 3、缓存雪崩:大规模的缓存失效采用分散过期时间来解决;而针对缓存服务宕机的情况,我们可以采用分布式集群来实现缓存服务 | ||
redis SortedSet 数据结构 | 跳表 | https://www.cnblogs.com/WJ5888/p/4516782.html Redis的SortedSet为什么使用跳表而不使用红黑树?_redis,它为什么用跳表而不用红黑树来实现集合和列表类型-CSDN博客 | |
redis字符串数据结构 | 简单动态字符串(Simple Dynamic String),简称SDS | ||
redis的Hash数据结构以及扩容流程 | 1、当 hashtable 中元素的个数等于数组的长度时,就会开始扩容,缩容条件是元素个数少于数组长度的 10%. 2、渐进式 rehash,调用方可以在dict做插入,删除,更新的时候执行dictRehash(),最小化数据迁移的代价。 | https://juejin.im/post/5cfe6383e51d45599e019d8f (简要介绍) Redis hash实现详解 - 简书 (源码解析) | |
Redis集群几种方式 | ● 主从复制,Master宕机后不影响Slave的读,但该集群不再提供对Redis的写入功能 ● 哨兵,哨兵模式是建立在主从模式的基础上,当Master节点宕机之后,哨兵会从Slave节点中选择一个节点作为Master,并修改它们的配置文件,使其他的Slave指向新的Master.但哨兵无法对Slave进行自动故障转移 ● 集群,所有的节点都是主从模式,其中Slave不提供服务,只提供备用。最少三主三从构成一个集群 | ||
Redis五种数据结构 | List:整体上quicklist就是一个双向链表结构. 每个quicklist节点就是一个ziplist,具备压缩列表的特性。 Hash:一种是ziplist,上面已经提到过。当存储的数据超过配置的阀值时就是转用hashtable的结构 | ||
Redis中Set和List区别 | list集合的值不具有唯一性,双向链表实现 set集合的值具有唯一性,HashTable实现(只有key) | ||
各个数据结构使用场景 | String:普通的key-value,计数器,保存图片二进制 Hash:存储用户、商品信息,hgetall可以直接取到全部的属性数据 List:push+pop命令实现消息队列,twitter的关注列表,粉丝列表都可以用list结构来实现。 Set:交差并集求共同好友 Sorted Sets:排行榜 | ||
redis过期机制以及内存淘汰策略 | Redis中同时使用了惰性过期和定期过期两种过期策略。 noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。 allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。 allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。 volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。 volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。 volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。 Redis4.0加入了LFU(least frequency use)淘汰策略,包括volatile-lfu和allkeys-lfu,通过统计访问频率,将访问频率最少,即最不经常使用的KV淘汰。 | ||
redis面试题汇总 | 持久化策略 数据结构 | ||
Redis 和 Memcached 的区别有哪些? | ● Memcached 不支持持久化存储,重启时,数据被清空。 ● Redis 支持持久化存储,重启时,可以恢复已持久化的数据。 | ||
redis线程模型 | 异步非阻塞IO,多路复用 | ||
redis单线程为什么这么快 | 纯内存操作 异步非阻塞 单线程避免线程上下文切换 | ||
主从、哨兵、集群的区别 | 主从模式:备份数据、负载均衡,一个Master可以有多个Slaves。 sentinel发现master挂了后,就会从slave中重新选举一个master。 cluster是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器。 sentinel着眼于高可用,Cluster提高并发量。 | ||
缓存读写策略 | 1.Cache Aside 是我们在使用分布式缓存时最常用的策略,你可以在实际工作中直接拿来使用。2.Read/Write Through 和 Write Back 策略需要缓存组件的支持,所以比较适合你在实现本地缓存组件的时候使用; 3.Write Back 策略是计算机体系结构中的策略,不过写入策略中的只写缓存,异步写入后端存储的策略倒是有很多的应用场景。 |
面试实战题-Redis
于 2024-08-12 11:49:25 首次发布