经典开源代码分析——Leveldb高效存储实现导读:LevelDB是Google开源的持久化KV数据库,在其高性能的背后,将数据拆分成多层进行存储。本文作者深入分析了LevelDB存储模块的设计和源码实现,快速了解LevelDB高性能背后的原理。作者codedumpcodedump.info博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读codedump更多文章。本文基于leveldb1
分类:
数据库 时间:
2020-11-06 01:07:54
阅读次数:
23
Go存储怎么写?深度解析etcd存储设计导读:etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,在CoreOS和Kubernetes等开源项目中广泛使用。本文作者深入分析了etcd存储模块的设计和实现,对于深入学习Go存储有很大参考作用。作者codedumpcodedump.info博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读codedump更多文章。在前面已经分析了R
分类:
其他好文 时间:
2020-11-06 01:02:57
阅读次数:
11
快照(snapshot)是最简单的压缩方式。在快照中,全部的当前系统状态都被写入到快照中,存储到持久化的存储中,然后在那个时刻之前的全部日志都可以被丢弃。像Redis这样的KV系统,系统的当前状态就是当前所有key的值及过期时间。 ...
分类:
编程语言 时间:
2020-10-26 11:23:07
阅读次数:
32
一.基本概念 Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go开发。 它提供微服务系统中的服务治理、配置中心、控制总线等功能。 服务发现:提供HTTP和DNS两种发现方式。 健康检测:支持多种方式,http、tcp、Docker、shell等 kv存储:key、v ...
分类:
编程语言 时间:
2020-09-17 13:43:04
阅读次数:
30
1. Neo4j 初览 每个圆圈表示一个节点(Nodes),节点用于形成图数据,记录数据的名称,如图一就是neo4j中最简单的一个图数据库,只含一个节点。节点中的kv对表示属性,neo4j中属性用于存数据。规定图一种节点的含义为一个具体的人,则图一的节点含义为:一个名为(named)为Emil,来自 ...
分类:
其他好文 时间:
2020-09-03 17:00:55
阅读次数:
50
Hash是KV键值对,其中的值是个Map 1、设置、获取删除 设置、获取和删除 hset 设置一个属性 hget 获取指定属性 hmset 设置多个属性 hmget 获取多个属性 hgetall 获取所有属性 hdel 删除指定的属性 2、查看指定key的属性个数,判断是否存在某个属性 查看属性个数 ...
分类:
其他好文 时间:
2020-08-05 00:01:46
阅读次数:
74
basic paxos base paxos讲的是,分布式环境下,多个节点之间,如何就某个值达成共识,是一种共识算法。 例如有一个三副本的kv存储系统,有三个节点,其中两个都接收到更新x的请求(如node 1收到的是set x-2, node 2 收到的是set x=5),base paxos的目标 ...
分类:
编程语言 时间:
2020-08-02 19:57:31
阅读次数:
99
简介: 服务注册与发现组件,提供的功能除了服务注册与发现之外还有健康监测、KV存储、多数据中心、可视化web界面。作用与Eureka、zookeeper类似。关于微服务的CAP原则,Eureka满足的是AP,consul和zookeeper满足的是CP。 下载安装: 网址:https://www.c ...
分类:
其他好文 时间:
2020-07-30 21:48:01
阅读次数:
93
redis的五种数据结构原理分析 本章主要内容 简单介绍redis redis中的五种数据结构分析 应用场景分析 总结 关于Redis redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据 ...
分类:
其他好文 时间:
2020-07-11 13:04:58
阅读次数:
70
背景 Redis是基于内存的KV数据库,内存作为存储介质,关注其内存的使用情况是一个重要指标,解析其内部的存储信息是给出优化方法和维护的最基本要求。解析内存有二种方法:第一个是通过scan遍历所有key,针对每个key进行分析(memory usage);第二个是基于RDB文件进行所有key的分析( ...
分类:
数据库 时间:
2020-07-11 10:05:03
阅读次数:
64