rdb

面试被问频率最高的几道Redis面试题

两盒软妹~` 提交于 2020-12-14 12:51:21
Redis 相关面试题确实很多,主要是因为知识点很多,但是面试的时候,不可能都问个遍,所以本文就来总结一下,面试被问频率最高的几道 Redis 的面试题。 请说一下 Redis 支持的哪些数据类型 String(字符串) list(列表) :list 是字符串列表,按照插入顺序排序。元素可以在列表的头部(左边)或者尾部(右边)进行添加。 hash(哈希) : Redis hash 是一个键值对(key-value)集合。 Redis hash 是一个 String 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 set(集合) : Redis 的 set 是 String 类型的无序集合。 zset (sorted set:有序集合) : Redis zset 和 set 一样也是 String 类型元素的集合,且不允许重复的成员。不同的 zset 是每个元素都会关联一个 double 类型的分数。 zset 通过这个分数来为集合中所有元素进行从小到大的排序。 zset 的成员是唯一的,但分数(score)却可以重复。 这个题目是不管你是初级、中级还是高级,被问到的概率很大。 Redis有哪些常见应用场景 ? 热点数据缓存: 由于 Redis 访问速度块、支持的数据类型比较丰富,所以 Redis 很适合用来存储热点数据 限时业务实现: expire

7600字带你学会 Redis 性能优化点,硬核干货!

对着背影说爱祢 提交于 2020-12-12 07:51:03
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系,都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。 那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢? Redis 性能的基本面 在讨论优化之前,我们需要知道,Redis 服务本身就有一些特性,比如单线程运行。除非修改 Redis 的源代码,不然这些特性,就是我们思考性能优化的基本面。 那么,有哪些 Redis 基本特性需要我们考虑呢?Redis 的项目介绍中概括了它特性: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported. 首先,Redis 使用操作系统提供的虚拟内存来存储数据。而且,这个操作系统一般就是指 Unix。Windows 上也能运行 Redis,但是需要特殊处理。如果你的操作系统使用交换空间,那么 Redis 的数据可能会被实际保存在硬盘上。 其次,Redis 支持持久化,可以把数据保存在硬盘上。很多时候,我们也确实有必要进行持久化来实现备份,数据恢复等需求

硬核干货! Redis 性能优化, 建议收藏!

六月ゝ 毕业季﹏ 提交于 2020-12-12 07:22:47
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系,都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。 那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢? Redis 性能的基本面 在讨论优化之前,我们需要知道,Redis 服务本身就有一些特性,比如单线程运行。除非修改 Redis 的源代码,不然这些特性,就是我们思考性能优化的基本面。 那么,有哪些 Redis 基本特性需要我们考虑呢?Redis 的项目介绍中概括了它特性: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported. 首先,Redis 使用操作系统提供的虚拟内存来存储数据。而且,这个操作系统一般就是指 Unix。Windows 上也能运行 Redis,但是需要特殊处理。如果你的操作系统使用交换空间,那么 Redis 的数据可能会被实际保存在硬盘上。关注公众号:程序员白楠楠,获取2020最新面试题 其次,Redis 支持持久化,可以把数据保存在硬盘上。很多时候

Redis面试突击专用

最后都变了- 提交于 2020-12-11 07:54:37
来源:https://blog.csdn.net/Butterfly_resting/article/details/89668661 本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Redis 集群方案应该怎么做?都有哪些方案? 有没有尝试进行多机redis 的部署?如何保证数据一致的? 对于大量的请求怎么样处理 Redis 常见性能问题和解决方案? 讲解下Redis线程模型 为什么Redis的操作是原子性的,怎么保证原子性的? Redis事务 Redis实现分布式锁 Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出

出招吧!腾讯专家手敲《Redis源码日志笔记》,不服来对打!

放肆的年华 提交于 2020-12-10 19:42:04
引言 本文分为六个部分,包括 Redis 源码日志,服务框架,基础数据结构,内功心法,应用,其他,从源码层面循序渐进的了解Redis。可以快速、有效地了解Redis 的内部构造以及运作机制,更好、更高效地使用Redis。 本文框架如下 第一部分,主要是在阅读代码过程中的日志和笔记; 第二部分,主要介绍了 Redis 的主要框架,以及 Redis 是如何提供服务的,从一个最简单的命令开始讲起; 第三部分,主要介绍 Redis 底层用作存储的数据结构,这一部分很有趣; 第四部分,主要讲解了 Redis 的核心功能,包括持久化,订阅/发布模式,主从复制,事务机制,集群等等; 第五部分,展示了 Redis 几个简单的应用; 第六部分,介绍了 Redis 和 Memcached 的区别,以及稍稍讲解了 Memcached。 Tips:本文内容已经整理成了pdf版本,内容由真实腾讯专家手写,感兴趣的朋友可以通过【一键三连本文】方式获取到腾讯专家手写Redis源码日志笔记pdf版本! 获取下载方式,点击获取!暗号:CSDN Redis服务框架 ①初探 Redis Redis 在缓存系统所处的位置 ②Redis 事件驱动详解 事件驱动数据结构 事件循环中心 Redis 事件驱动原理 事件注册详解 准备监听工作 为监听套接字注册事件 事件循环 事件触发 ③Redis 是如何提供服务的

redis系统学习之主从复制的原理与注意事项

早过忘川 提交于 2020-12-09 16:43:25
前言 在前面的两篇文章中,分别介绍了 Redis的内存模型 和 Redis的持久化 。 在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。 这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制、主从复制的原理(重点是全量复制和部分复制、以及心跳机制)、实际应用中需要注意的问题(如数据不一致问题、复制超时问题、复制缓冲区溢出问题)、主从复制相关的配置(重点是repl-timeout、client-output-buffer-limit slave)等。 目录 一、主从复制概述 二、如何使用主从复制 1. 建立复制 2. 实例 3. 断开复制 三、主从复制的实现原理 1. 连接建立阶段 2. 数据同步阶段 3. 命令传播阶段 四、【数据同步阶段】全量复制和部分复制 1. 全量复制 2. 部分复制 3. psync命令的执行 4. 部分复制演示 五、【命令传播阶段】心跳机制 1. 主->从:PING 2. 从->主:REPLCONF ACK 六、应用中的问题 1. 读写分离及其中的问题 2. 复制超时问题 3. 复制中断问题 4. 各场景下复制的选择及优化技巧 5.

Redis面试题汇总(附答案),面试突击专用

早过忘川 提交于 2020-12-09 00:58:41
本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Redis 集群方案应该怎么做?都有哪些方案? 有没有尝试进行多机redis 的部署?如何保证数据一致的? 对于大量的请求怎么样处理 Redis 常见性能问题和解决方案? 讲解下Redis线程模型 为什么Redis的操作是原子性的,怎么保证原子性的? Redis事务 Redis实现分布式锁 总结 小编在这里整理了一套大厂Redis高频面试题 需要的朋友关注公众号:程序员白楠楠 Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。 RDB是Redis默认的持久化方式

Redis的浅入门

孤者浪人 提交于 2020-12-08 07:48:46
<center><font size=8>Redis的浅入门</font></center> # 缓存的思想 问题提出:我们的用户数量上亿,如果登录,访问数据库user特别耗时,该怎么办?——提出缓存 方法:怎样从缓存在获取数据? *有数据: 直接返回 *无数据: (1)从数据库查询 (2)将数据放入缓存 (3)返回数据 认识redis 特点:-属于NOSQL,数据之间没有关联关系,数据存储在内存。 对比一下关系型数据库(MYSQL..)数据之间有关联,数据存储在硬盘的文件上。 数据结构-[key,value] key - 字符串 value - 5种不同 value数据结构: 字符串类型 String 哈希类型 hash 列表类型 list 集合类型 set 有序集合类型 sortedset 五种数据结构命令 https://www.redis.net.cn/ 可以看一个学习redis的中文网 1. 字符串类型 string 1. 存储: set key value 2. 获取: get key 3. 删除: del key 2. 哈希类型 hash 1. 存储: hset key field value 2. 获取: * hget key field: 获取指定的field对应的值 * hgetall key:获取所有的field和value 3. 删除: hdel key

Redis主从复制的原理

隐身守侯 提交于 2020-12-08 03:56:12
更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,我们定义被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),这种模式叫做主从复制模式。 > 数据流向是单向的,只能是从master到slave > 一个slave只能有一个master 主从复制的作用 为数据提供多个副本,实现高可用 实现读写分离(主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性) 主从复制的方式 命令slaveof。 优点:无需重启。缺点:不便于管理 // 命令行使用 slaveof ip port // 使用命令后自身数据会被清空,但取消slave只是停止复制,并不清空 修改配置。 优点:统一配置。缺点:需要重启 // 配置文件中配置 slaveof ip port slave-read-only yes //只允许从节点进行读操作 全量复制 用于初次复制或其它无法进行部分复制的情况,将主节点中的所有数据都发送给从节点,是一个非常重型的操作,当数据量较大时,会对主从节点和网络造成很大的开销 全量复制过程: Redis内部会发出一个同步命令,刚开始是Psync命令,Psync ? -1表示要求master主机同步数据

redis系统学习之主从复制的原理与注意事项

假装没事ソ 提交于 2020-12-08 00:56:55
前言 在前面的两篇文章中,分别介绍了 Redis的内存模型 和 Redis的持久化 。 在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。 这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制、主从复制的原理(重点是全量复制和部分复制、以及心跳机制)、实际应用中需要注意的问题(如数据不一致问题、复制超时问题、复制缓冲区溢出问题)、主从复制相关的配置(重点是repl-timeout、client-output-buffer-limit slave)等。 目录 一、主从复制概述 二、如何使用主从复制 1. 建立复制 2. 实例 3. 断开复制 三、主从复制的实现原理 1. 连接建立阶段 2. 数据同步阶段 3. 命令传播阶段 四、【数据同步阶段】全量复制和部分复制 1. 全量复制 2. 部分复制 3. psync命令的执行 4. 部分复制演示 五、【命令传播阶段】心跳机制 1. 主->从:PING 2. 从->主:REPLCONF ACK 六、应用中的问题 1. 读写分离及其中的问题 2. 复制超时问题 3. 复制中断问题 4. 各场景下复制的选择及优化技巧 5.