【笔记七】redis底层redis有哪些数据结构, 应用场景redis的zset什么结构redis为什么要用跳表而不是树redis性能redis的qps提高qps多大大key,如何解决热key发现和处理redis对过期key清理淘汰策略主从删除redis为什么吞吐量大性能强redis实现分布式锁redis持久化方式和区别aof和rdbredis集群哨兵和集群的各自场景集群分布redis集群选举
转载 2024-10-21 19:03:54
16阅读
一、Redis的数据结构简单来说,五个基本数据类型在Redis中以这样的数据结构存在,下图所示:二、String2.1 String的底层实现(SDS)String的底层由一个叫简单动态字符串实现的,Simple Dynamic String,简称SDS,在Redis的数据结构中大概长这个样子:注意:一个String最大容量512M。看一下Reids中的源码,就和上图对上了len:表示 SDS
转载 2024-06-16 20:56:57
52阅读
Hash数据结构介绍:案例: hash-max-ziplist-entries:使用压缩列表保存时哈希集合中的最大元素个数。 hash-max-ziplist-value:使用压缩列表保存时哈希集合中单个元素的最大长度。Hash类型键的字段个数 小于 hash-max-ziplist-entries 并且每个字段名和字段值的长度 小于 hash-max-ziplist-value 时, Redis
Redis客户端Lettuce深度分析介绍前言Spring Boot自2.0版本开始默认使用Lettuce作为Redis的客户端(注1)。Lettuce客户端基于Netty的NIO框架实现,对于大多数的Redis操作,只需要维持单一的连接即可高效支持业务端的并发请求 —— 这点与Jedis的连接池模式有很大不同。同时,Lettuce支持的特性更加全面,且其性能表现并不逊于,甚至优于Jedis。本文
转载 2023-09-24 14:16:33
256阅读
# Redis底层Netty实现详解 ## 概述 Redis作为一个高性能的内存数据结构存储系统,广泛应用于缓存、实时分析等场景。其底层实现不仅继承了C语言的高效性,还结合了Java的灵活性,尤其在其客户端中,Redis大量使用了Netty框架来进行网络通信。 Netty一种高性能的网络编程框架,它提供了丰富的异步事件驱动的网络功能。但是,在讨论RedisNetty底层实现之前,我们需
原创 11月前
44阅读
前言几乎每个使用 Java开发的工具、软件基础设施、高性能开发库都在底层使用了 sun.misc.Unsafe,比如 Netty、Cassandra、Hadoop、Kafka 等。Unsafe 类在提升 Java 运行效率,增强 Java 语言底层操作能力方面起了很大的作用。但 Unsafe 类在 sun.misc 包下,不属于 Java 标准。很早之前,在阅读并发编程相关类的源码时,看到 Uns
导语   Apache RocketMQ 从诞生到现在,架构都是比较简单的,通过这样一个简单的架构支撑了很多复杂的业务逻辑。具有极强的可扩展性。也被很多大厂以及企业级开发者使用。历经十几年的打磨,RocketMQ也是业内比较可靠的金融级的消息解决方案首选,被广泛的用于互联网、大数据、移动互联网、物联网等领域的业务场景。   Apache RocketMQ 5.0 的演进目标有三个: 消息基础架构的
Redis面试高频】- Redis数据结构Redis一个基于内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis支持五种常见对象类型:字符串(String)、列表(List)、集合(Set)、有序集合(ZSet)和哈希(Hash).1 对象类型和编码Redis使用对象来存储键和值的,在Redis中,每个对象都由redisObject结构表示。redisObject结构主要包含
tidb是什么?tidb分布式关系型数据库;需要从两个方面来理解tidb:分布式数据库;关系型数据库。什么分布式系统?集中式系统,计算和存储在同一个节点上;分布式系统,计算和存储位于不同的节点上;分布式系统把需要进行大量计算的工程数据分割成若干个小块,有多台计算机分别进行计算和存储,然后将结果统一合并到数据结论的科学;本质上就是进行数据存储与计算的分治;分布式系统较集中式系统,需要做哪些额外工
转载 2023-09-22 11:00:39
167阅读
# Gateway 与 Redis 底层 Netty 冲突解决指南 ## 引言 在微服务架构中,使用 Gateway 作为流量入口,同时利用 Redis 作为缓存或消息代理很常见的。然而,由于 Gateway 和 Redis 底层使用 Netty 进行网络通信,可能会存在资源冲突的问题。本指南将详细介绍该问题的解决流程,帮助刚入行的开发者理解如何处理 Gateway 与 Redis底层
原创 2024-10-01 08:56:42
49阅读
文章目录1.概述2.RedisObject3.SDS4.SDS的优势5.String相关的指令5.1 set5.2 get5.3 append5.4 incr/incrby5.5 decr/decrby 1.概述Redis由C语言编写的。在C语言中,字符串标准形式是以空字符\0 作为结束符的,但是Redis里的字符串并没有沿用C语言的字符串。主要原因如果要获取字符串的长度,C语言中调用str
转载 2024-05-14 19:40:16
32阅读
什么分布式系统:    业务量的迅速增大,普通的单机系统无法满足要求,要么垂直扩展升级机器硬件,要么水平扩展堆廉价服务器。目前互联网领域选择了后者 水平扩展etcd介绍:1、etcdCoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选注、分布式锁等)2、etcd一个go语言编写的分布式、高可用的一致性键值
集群架构代理模式双副本集群为例。其他还有 configService 两台configServer互为主备 利用心跳机制检测dataServer的存活情况,并更新路由信息表 提供客户端查询路由信息表的能力 调度dataServer间的数据备份和迁移操作dataServer dataServer提供存储引擎 dataServer执行client请求的 put/get/remover等操作 数据的备份
转载 2024-05-29 20:31:36
124阅读
# Redis底层NoIO解析及实现 ## 引言 Redis,被誉为“高速缓存”的明星,一个开源的内存数据结构存储系统,广泛应用于高并发场景中。其高性能背后,底层的实现是极力避免传统I/O阻塞的“无阻塞I/O(NoIO)”设计。这篇文章将带您深入了解Redis底层的NoIO设计理念以及实际代码示例。 ## 什么NoIO? 在传统的网络应用中,I/O操作通常会导致阻塞,这意味着线程在等待
原创 2024-10-13 03:16:54
33阅读
导读有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我们来看看MacOS和Linux内核的区别。MacOS内核的历史我们将从MacOS内核的历史开始。1985年,由于与首席执行官John Sculley和苹果董事会发生争执,Steve Jobs离开了苹果
转载 2023-10-19 21:26:36
385阅读
typora-copy-images-to: images1、深入理解TCP、IP协议查看地址:https://www.rfc-editor.org/端口号端口号只有65535个,这是受限于表示端口号的字节数,那么一台主机上只能保持最多65535个TCP连接对不对呢?不对,因为一个TCP由4个元素确定:源IP、目的IP、源端口、目的端口,只要有一个值变了,就不再同一个TCP连接了TCP三次握手/
原创 2023-07-18 23:27:19
80阅读
1. Netty 基础        Netty 一个高性能、异步事件驱动的 NIO 框架,它提供了对 TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。它是一
引言Java的优点:一次编写,处处执行,即跨平台。 Java如何做到跨平台呢? 首先看这张图片,我们写的Java代码,通过Javac编译成字节码文件,然后通过Java命令进入jvm。但是在不同的平台上机器码不一样,所以jvm一个宏观上的理解就是:从软件层面屏蔽不同操作系统在底层硬件与指令上的区别。JVM虚拟机结构图JVM各组成部分:运行时数据区(内存模型)类转载子系统字节码执行引擎运行时数据区(内
Redis中set结构类似于数学上的集合的概念,它包含的元素无序,且不能重复。Redis里的set结构还实现了基础的集合并、交、差的操作。与Redis对外暴露的其它数据结构类似,set的底层实现,随着元素类型是否整型以及添加的元素的数目多少,而有所变化。概括来讲,当set中添加的元素都是整型且元素数目较少时,set使用intset作为底层数据结构,否则,set使用dict作为底层数据结构。今天我
RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一 样。RPC 可以很好的解耦系统,如 WebService 就是一种基于 Http 协议的 RPC。这个 RPC 整体框架 如下关键技术: 1、服务发布与订阅:服务端使用 Zookeeper 注册服务地址,客户端从 Zookeeper 获取可用的服务 地址。2、通信:使用 Netty
  • 1
  • 2
  • 3
  • 4
  • 5