redis
文章平均质量分 91
攻城狮百里
学无止境
展开
-
Redis 简单动态字符串SDS
AOF中记录的是每一个命令的详细信息,包括完整的命令类型、参数等。只要产生写命令,就会实时写入到AOF文件中。转载 2023-02-07 14:22:19 · 87 阅读 · 0 评论 -
Redis高性能原理:源码上解析redis单线程/reactor 网络模型
为什么单线程Redis能那么快? 一方面,Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。另一方面,就是 Redis 采用了多路复用机制,使其在网络 IO 操作中能并发处理大量的客户端请求,实现高吞吐率。接下来,我们就重点学习下多路复用机制。Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群原创 2022-05-19 16:12:20 · 413 阅读 · 0 评论 -
Redis主从同步原理
主从架构主从架构设计的思路大概如下:只有一台主服务器,只负责写入数据,不负责读取数据。多台从服务器,不写入数据,只负责同步主服务器的数据,提供外部程序读取。主服务器写入数据后,将命令发送到从服务器,使主从数据同步。应用程序可以读取某一台从服务器的数据,负载均衡。当某些从服务器瘫痪时,系统影响不大。当主服务器瘫痪时,选举某一台从服务器成为主服务器Redis主从同步图中左边的流程是主服务器,而右边的流程为从服务器。无论如何要先保证主服务器的开启,开启主服务器后,从服务器通过命令或者重启原创 2021-10-14 16:58:20 · 359 阅读 · 0 评论 -
Redis数据存储的细节
1、概述关于Redis数据存储的细节,涉及到内存分配器(如jemalloc)、简单动态字符串(SDS)、5种对象类型及内部编码、redisObject。在讲述具体内容之前,先说明一下这几个概念之间的关系。下图是执行set hello world时,所涉及到的数据模型。(1)dictEntry:Redis是Key-Value数据库,因此对每个键值对都会有一个dictEntry,里面存储了指向Key和Value的指针;next指向下一个dictEntry,与本Key-Value无关。(2)Key:图中原创 2021-04-17 17:18:11 · 411 阅读 · 0 评论 -
Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?
Redis是目前广为人知的一个内存数据库,在各个场景中都有着非常丰富的应用,前段时间Redis推出了6.0的版本,在新版本中采用了多线程模型。因为我们公司使用的内存数据库是自研的,按理说我对Redis的关注其实并不算多,但是因为Redis用的比较广泛,所以我需要了解一下这样方便我进行面试。总不能候选人用过Redis,但是我非要问人家阿里的Tair是怎么回事吧。所以,在Redis 6.0 推出之后,我想去了解下为什么采用多线程,现在采用的多线程和以前版本有什么区别?为什么这么晚才使用多线程?Redis转载 2021-03-27 15:11:34 · 207 阅读 · 0 评论 -
Redis亿级数据过滤和布隆过滤器
Redis详解—rehash、布隆过滤器、redis持久化如上图所示,布隆过滤器(Bloom Filter) 就是这样一种专门用来解决去重问题的高级数据结构。但是跟 HyperLogLog 一样,它也一样有那么一点点不精确,也存在一定的误判概率,但它能在解决去重的同时,在 空间上能节省 90% 以上,也是非常值得的。布隆过滤器是什么布隆过滤器(Bloom Filter) 是 1970 年由布隆提出的。它 实际上 是一个很长的二进制向量和一系列随机映射函数 (下面详细说),实际上你也可以把它 简单理解原创 2021-03-19 20:58:27 · 667 阅读 · 0 评论 -
剖析Redis事务实现原理
所谓事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务必须满足ACID原则(原子性、一致性、隔离性和持久性)。简单来说事务其实就是打包一组操作(或者命令)作为一个整体,在事务处理时将顺序执行这些操作,并返回结果,如果其中任何一个环节出错,所有的操作将被回滚。在Redis中实现事务主要依靠以下几个命令来实现:Redis事务从开始到结束通常会通过三个阶段:1.事务开始2.命令入队3.事务执行以下是一个最简单的Redis事务流程:第一步跟其他的关系型数据库类似,也是需要原创 2021-03-15 15:09:18 · 249 阅读 · 0 评论 -
Redis 多线程面试题如何回答?
曾经Redis是单线程模式,这个曾经也算Redis的优势,那么随着6.0版本多线程的发布,这个版本之后彻底的抛弃了单线程模型这一设计。原本使用单线程运行的 Redis 也开始选择性使用多线程模型。看来任何事物都逃不过“真香定律”那么以后关于Redis面试题:Redis是多线程还是单线程这个问题该如何回答呢?仔细想想,这个问题其实可以拆分,拆分为两个主要的问题:(1)为什么 Redis 一开始选择单线程模型(单线程的好处)?(2)为什么 Redis 在 6.0 之后加入了多线程(在某些情况下,单线.原创 2021-03-05 20:03:23 · 344 阅读 · 0 评论 -
Redis中的数据结构与常用命令
相关视频:大厂redis面试,你能get到几个点对于Redis的介绍这里只写一句:Redis是一种基于内存的高性能非关系型数据库,它以kye-value的形式来存储数据。核心对象Redis五种数据结构对应的编码方式编码指的是五种数据类型在Redis内部的存储方式,一种数据类型可对应多个编码方式。5种数据类型Redis中包含5种数据类型:STRING、LIST、SET、HASH、ZSET。Redis中的5中数据结构(截图出自《Redis in Action》):Redis以key-val原创 2021-03-01 17:33:28 · 250 阅读 · 0 评论