Redis存储结构

前言Redis 作为一款高性能数据库,表现在:它接收到一个键值对操作后, 能以微秒级别的速度找到数据,并快速完成操作。其高性能得奥秘来缘于以下两点: Redis 是内存数据库, 所有操作都在内存上完成,内存的访问速度本身就很快 Reids 通过高效的数据结构来组织数据。 本章节可以让你在最短的时间了解如下内容: Redis 支持五大数据类型 Redis 组织 Key-Value 数据结构 Redis5 大值类型数据存储结构 一、五大数据类型 String(字符串) List(列表) Set(集合) Hash(哈希) Zset(有序集合) 二、组织 Key-Value 数据结构在 re ...

HBase 读优化

https://blog.csdn.net/weixin_40954192/article/details/106942029 LSM 存储引擎是在 B+树的基础上衍生过来的,目的就是为了在读和写之间,提高写的性能。所以,LSM 树的弊端也由此可见,对读并不是很友好,所以,针对 LSM 树,有后续 compact,布隆过滤器,blockCache 等优化方式。来弥补对读的查询。LSM 树的索引一般由 2 部分构成,一部分是内存部分,一部分是磁盘部分。内存部分采用跳跃表来维护一个有序的 KV 集合,也就是 memstore.随着内存不断数据写入,一旦内存占用超过 ...

HBase 系统架构

本文基本是对 MapR 的官网文章An In-Depth Look at the HBase Architecture的翻译 HBase 存储架构HBase 采用 Master/Slave 架构搭建集群,它隶属于 Hadoop 生态系统,由一下类型节点组成:HMaster 节点、HRegionServer 节点、ZooKeeper 集群,而在底层,它将数据存储于 HDFS 中,因而涉及到 HDFS 的 NameNode、DataNode 等,总体结构如下: HMaster 节点 管理 HRegionServer,实现其负载均衡。 管理和分配 HRegion,比如在 HRegion s ...

Redis分布式锁

分布式锁为解决分布式系统中多个应用同时访问同一个资源的问题。 分布式锁的使用场景一般是在两个场景下会防止对同一个资源的重复访问 提升效率 比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用重复计算了,以免浪费计算资源。不过重复计算也没事,不会造成其他更大的损失,允许偶尔的失败。 保证正确性 这种情况对锁的要求就很高了,如果重复计算,会对正确性造成影响,不允许失败。 分布式锁支持的特性在这个技术不断更新迭代的情况下,分布式这个概念,在企业中的权重越来越高。谈及分布式时,不可避免一定会提到分布式锁,现阶段分布式锁的实现方式主流的有几种实现方式,Zookeepe ...

Redis大Value

大 key 和大 value 的危害,如何处理 Redis 的大 key 有什么危害?一个 key 的 value 较大时的情况,比如: 内存不均:单 value 较大时,可能会导致节点之间的内存使用不均匀,间接地影响 key 的部分和负载不均匀; 阻塞请求:redis 为单线程,单 value 较大读写需要较长的处理时间,会阻塞后续的请求处理; 阻塞网络:单 value 较大时会占用服务器网卡较多带宽,可能会影响该服务器上的其他 Redis 实例或者应用。 虽说答的是挺好的,但是我又随之产生了另一个疑惑,如果 redis 的 key 较长时,会产生什么样的影响呢?查了很多文章,说的都不是 ...

HBase LSM树

https://zhuanlan.zhihu.com/p/181498475 LSM 树(Log-Structured-Merge-Tree)的名字往往会给初识者一个错误的印象,事实上,LSM 树并不像 B+树、红黑树一样是一颗严格的树状数据结构,它其实是一种存储结构,目前HBase、LevelDB、RocksDB 这些 NoSQL 存储都是采用的 LSM 树。LSM 树的核心特点是利用顺序写来提高写性能,但因为分层(此处分层是指的分为内存和文件两部分)的设计会稍微降低读性能,但是通过牺牲小部分读性能换来高性能写,使得 LSM 树成为非常流行的存储结构。 数据库存储有两种数据结构,一种 B ...

Hive文件格式

一、文件定义ORC File,它的全名是 Optimized Row Columnar (ORC) file,其实就是对 RCFile 做了一些优化。据官方文档介绍,这种文件格式可以提供一种高效的方法来存储 Hive 数据。它的设计目标是来克服 Hive 其他格式的缺陷。运用 ORC File 可以提高 Hive 的读、写以及处理数据的性能。和 RCFile 格式相比,ORC File 格式有以下优点:1、每个 task 只输出单个文件,这样可以减少 NameNode 的负载;2、支持各种复杂的数据类型,比如: datetime, decimal, 以及一些复杂类型 struct, list, ...

设计模式与GO

原文链接:https://refactoringguru.cn/design-patterns/go代码可见:https://github.com/charles0212/design-patterns 创建型模式 创建型模式 模式描述 抽象工厂 Abstract Factory,让你能创建一系列相关的对象, 而无需指定其具体类。 生成器 Builder,使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 工厂方法 Factory Method,在父类中提供一个创建对象的接口以允许子类决定实例化对象的类型。 原型 Protot ...