计算机存储
肥叔菌
本博客主要用于记录学习过程中的笔记,每隔一段时间,博主将会将精华内容整合发到知乎、简书上。欢迎关注博主肥叔菌在其他平台上的账号,谢谢。
B站:https://space.bilibili.com/456254145
segmentfault:https://segmentfault.com/u/feishujun/articles
简书:https://www.jianshu.com/u/67bab078551a
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么是 PM,什么是 SCM,和 NVM 什么关系?
近几年,不论在学术界还是工业界,NVM 都是比较前沿的技术。其实 NVM 一词并不新,是因为 PM (或称 SCM) 这个与 NVM 有关的概念的出现,使得 NVM 这词又 “火” 了一把。在近年的相关文献中,NVM 也经常被和 PM (SCM) 混用,让人搞不清。本文捋一捋它们之间的关系。NVM准确来说,NVM (non-volatile memory) 指的是非易失的物理存储介质,比如 NAND flash、PCM、3D XPoint 等都算是 NVM,这些 NVM 可以做成 SSD 形式,也可以做原创 2020-09-29 21:43:26 · 10314 阅读 · 1 评论 -
图书简介:PostgreSQL实战
作者: 谭峰 张文升出版社: 机械工业出版社出版年: 2018-1-1页数: 399定价: 89.00元装帧: 平装-文库丛书: 数据库技术丛书ISBN: 9787111603467内容简介本书基于PostgreSQL 10编写,重点介绍PostgreSQL的丰富特性以及生产实践运维技巧。全书共18章,分为基础篇、核心篇、进阶篇三部分。基础篇包括第1到4章,主要介绍PostgreSQL基础知识,例如安装、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括.原创 2020-06-10 19:12:57 · 8707 阅读 · 0 评论 -
ubuntu 16.04 安装redis 5.0.8
上一个博客我给Ubuntu 16.04安装了SSH服务器,这篇博客主要展示在该系统上安装最新的redis 5.0.8,redis官方的地址为https://redis.io/download。在Linux安装软件通常有两种方式,第一种是通过各个操作系统的软件管理软件进行安装,例如CentOS有yum管理工具,Ubuntu有apt。但是由于Redis的更新速度相对较快,而这些管理工具不一定能更新到最...原创 2020-04-21 22:06:04 · 9122 阅读 · 1 评论 -
读书笔记-PostgreSQL数据库内核分析 系统表
在关系数据库中,为了实现数据库系统的控制,必须提供数据字典的功能。数据字典不仅存储各种对象的描述信息,而且存储系统管理所需的各种对象的细节信息。从内容来看,数据字典包含:数据库系统中所有对象及其属性的描述信息对象之间关系的描述信息对象属性的自然语言含义数据字典变化的历史(即数据库的状态信息)数据字典是关系数据库系统管理控制信息的核心,在PostgreSQL数据库系统中,系统表扮演着数据字典的角色。系统表是PostgreSQL数据库存放结构元数据的地方,它在PostgreSQL中表现为存放有系统原创 2020-06-09 23:35:02 · 8773 阅读 · 0 评论 -
读书笔记-PostgreSQL数据库内核分析 简介
PostgreSQL 8.4.1PostgreSQL源码包含3400多个文件,主要程序由C语言编写,包括十几个大型模块,定义了几百个主要的数据结构和上万个函数。PostgreSQL源代码结构清晰,每个子目录都对应一个模块,其中主要目录及用途如下:PostgreSQL数据库由连接管理系统(系统控制器)、编译执行系统、存储管理系统、事务系统、系统表五大部分组成。连接管理系统接受外部操作对系统的请求,对操作请求进行预处理和分发,起系统逻辑控制作用;编译执行系统由查询编译器、查询的请求,对操作请求进行预处理和原创 2020-06-08 23:18:01 · 8506 阅读 · 0 评论 -
读书笔记-Greenplum企业应用实战:Greenplum架构
Master和Segment其实都是一个单独的PostgreSQL数据库。每一个都有自己单独的一套元数据字典。Master节点一般叫主节点,Segment叫数据节点。Segment节点和Master节点的通信,通过千兆(或万兆)网卡组成的内部连接,在同一台数据节点机器上可以放多个Segment,不同Segment节点会被赋予不同的端口,同时,Segment之间也不断地进行着交互。为了实现高可用,每个segement都有对应的备节点(Mirror Segment),分别存在于不同的机器上。Client一...原创 2020-06-05 22:58:59 · 8219 阅读 · 0 评论 -
磁盘阵列-FUJITSU Storage ETERNUS DX100 S3
适合中小企业或子公司的一体化存储系统:统一、可扩展的富士通ETERNUS DX100 S3存储系统可为中小企业和子公司提供企业级功能,具有卓越的性价比。它是服务器虚拟化、电子邮件、数据库和业务应用程序的数据整合以及集中式文件服务的完美解决方案。简单直观的系统管理、极为灵活的网络连接性以及现场升级至更高系统级别的可选特性,显著降低了运营和迁移成本。即使是入门级系统,ETERNUS DX 系列产品架构也能够让客户受益于软件选件,如自动精简配置、自动存储分层和服务管理质量。这些因素带来了更好的业务支持。.原创 2020-06-03 22:24:08 · 9100 阅读 · 0 评论 -
PostgreSQL学习笔记-系统概述
PostgreSQL系统概述 ---------> 了解PostgreSQL的发展历程,国内外PG社区组成和运作 ---------> 了解PG的特性,与其他流行关系数据库的比对,如何安装PostgreSQL等从1996年之后,PostgreSQL交由社区开发管理和维护。张文升 德哥 PostgreSQL核心组成员...原创 2020-06-03 22:03:30 · 8261 阅读 · 0 评论 -
读书笔记-Greenplum企业应用实战:简介
Greenplum是一家总部位于美国加利福尼亚,为全球大型企业用户提供新型企业级数据仓库(EDW)、企业级数据云(EDC)和商务智能(BI)提供解决方案和咨询服务的公司。重吞吐、高并发OLTP和重计算、统计分析的OLAPOLTP(On-Line Transaction Processing,联机事务处理)系统也称为生产系统,它是事件驱动的、面向应用的,比如电子商务网站的交易系统就是一个典型的OLTP系统。OLTP的基本特点是:数据在系统中产生;基于交易的处理系统(Transaction-Based);每原创 2020-06-03 21:59:30 · 8250 阅读 · 0 评论 -
Redhat 7下安装PostgreSQL 10
通过源码编译安装下载源码在PostgreSQL官方主页https://www.postgresql.org/ftp/latest下载区选择所需格式的源代码包下载:wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.gz解压:tar -xvf postgresql-10.0.tar.gz安装依赖包依赖包用途readline命令行编辑支持库zlib数据压缩支持库flex词法分析原创 2020-06-01 21:35:05 · 8775 阅读 · 0 评论 -
ubuntu 16.04 安装MongoDB 4.2 Community Edition
上一个博客我给Ubuntu 16.04安装了redis 5.0.8,这篇博客主要展示在该系统上安装MongoDB 4.2MongoDB 4.2社区版安装指南。使用本教程,可使用apt软件包管理器在Ubuntu Linux的LTS(长期支持)版本上安装MongoDB 4.2社区版。MongoDB Community Edition可从其自己的专用存储库中获得,并且包含以下官方支持的软件包:注...原创 2020-04-23 19:59:20 · 10305 阅读 · 0 评论 -
MySQL学习笔记-初级操作
DDL数据定义语言在建表时同时插入数据,新表的字段列表必须与子查询中的字段列表数量匹配。如果省略字段列表,则新表的列名与选择结果完全相同。create table 表名 [列名[, 列名...]] asslecet * from 其他表5. truncate对于大部分数据库而言,trucate都被当成DDL处理,truncate被称为截断某个表-它的作用是删除该表里的全...原创 2020-04-13 14:41:09 · 8994 阅读 · 0 评论 -
Windows 下的MySQL 5.5的卸载配置备份还原
这里的卸载只的是去程序管理找到MySQL直接右键卸载。卸载MySQL不会删除数据文件,需要手动删除,不然会装不上新的MySQL软件。关于Windows服务:方法一:右键管理出现如下界面->点击服务和应用程序->点击服务->从列表中查找到相应的服务方法二:在CMD中输入services.msc就可以打开方法三:以管理员身份使用cmd执行net命令...原创 2020-03-26 14:39:27 · 8925 阅读 · 0 评论 -
Window下MySQL 8.0重新设置密码
因为装的时间久了,密码不记得了,又不想重新装,怎么办呢?在程序管理器中将mysql服务停止,也就是直接停止mysqld。用mysql --shared-memory --skip-grant-tables启动mysql,但是这里发生错误:原因是没有设置数据路径,这里加上数据路径,并回车,启动mysqld。另启动一个cmd,执行mysql命令,启动客户端,输入FLUSH PRIVILEG...原创 2020-03-21 18:20:20 · 9784 阅读 · 0 评论 -
读书笔记——Neo4j实战 Cypher查询语言
Cypher是对图形的声明查询语言, 使用图形模式匹配作为主要的机制作图形数据选择(包括只读和变更操作) 。 Cypher的声明模式匹配性质意味着可以通过描述想从它那里得到什么查询图形数据。...原创 2019-11-30 22:29:35 · 10654 阅读 · 0 评论 -
读书笔记——Neo4j实战 数据索引
Neo4j使用索引以确定在图形数据库中从哪里开始。 在关系数据库中,一个索引提供了通过列的特定数值快速和容易地查找表中的行。 同样,Neo4j的索引使得它通过特定的属性值容易地查找节点或关系。 与关系数据库不同, Neo4j需要应用程序代码创建和维护索引项。因为应用程序的代码负责索引, 所以需要认真考虑索引策略。 关于索引的不明智决策将导致性能低下或硬盘使用超量。创建和查询索引创建索引当做索...原创 2019-11-25 15:54:26 · 9408 阅读 · 0 评论 -
读书笔记——Neo4j实战 使用Neo4jAPI 图形遍历
使用Neo4j核心Java API进行遍历第一种遍历方法是使用Neo4j核心Java API提供的标准方法。第一次遍历可以描述为“从代表用户John Johnson的节点开始, 查找这个用户看过的所有电影”。要导航到代表John已经看过的电影的节点, 我们将从代表John Johnson的节点开始, 然后按照所有HAS_SEEN关系找到目标电影。第一个任务是定位遍历的起始节点: 用户John...原创 2019-11-22 20:07:01 · 10603 阅读 · 0 评论 -
读书笔记——Neo4j实战 使用Neo4jAPI创建节点和关系
创建节点最开始的两行(程序3-1和程序3-2) 建立了单个user节点, 使用了Java 6(Neo4j 1.9.X) 和Java 7(Neo4j 2.0.X) 的习惯风格。这两种版本的最大区别是对事务的处理。在这两种风格中, 第一步是实例化Neo4j数据库 , 需要提供文件系统存储数据的位置作为构造函数参数。 如果这是一个已经存在的Neo4j数据库, 就会使用这个数据库。 如果指定的位...原创 2019-11-22 13:49:30 · 11992 阅读 · 0 评论 -
图数据库-读书笔记
todo原创 2019-11-22 11:39:17 · 8886 阅读 · 0 评论 -
MongoDB权威指南读书笔记——CRUD
插入并保存文档插入是向MongoDB中添加数据的基本方法。可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz"})。如果向集合中插入多个文档,使用批量插入。可以使用batchInsert函数实现批量插入,它接受一个文档数组作为参数:db.foo.batchInsert([{"_id" : 0}, {"_id" : 1}, {"_id" : 2...原创 2019-11-16 19:59:23 · 8825 阅读 · 0 评论 -
MongoDB权威指南读书笔记——概念
MongoDB的一个实例可以拥有多个相互独立的数据库,每个数据库都拥有自己的多个集合,集合中包含多个文档。数据库通过名称来标识。数据库名可以是满足以下条件的任意UTF-8字符串。数据库最终会变成文件系统里的文件,而数据库名就是相应的文件名。不能是空字符串不能含有/、\、.、"、*、<、>、:、|、?、$ 、\0。基本上,只能使用ASCII中的字母和数字。数据库名区分大小写,即便...原创 2019-11-06 13:15:39 · 8919 阅读 · 0 评论 -
Redis入门二:redhat 6.5安装使用
Redis服务器Redis目录下都会有一个redis.conf配置文件,里面就是Redis的默认配置,通常来讲我们会在一台机器上启动多个Redis,并且将配置集中管理在指定目录下,而且配置不是完全手写的,而是将redis.conf作为模板进行修改。使用配置文件启动:redis-server redis.conf的路径/redis.confRedis命令行客户端https://www.c...原创 2019-05-31 09:15:23 · 10153 阅读 · 0 评论 -
Redis 3.0源码分析-数据结构与对象 对象
前面几篇简介了Redis用到的所有主要数据结构,比如简单动态字符串、双端链表、字典、压缩列表、整数集合等等。Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象。Redis使用对象来表示数据库中的键和值,每次当我们在Redis的数据库中新创建一个键值对时,至少会创建两个对...原创 2019-05-31 09:14:03 · 9466 阅读 · 0 评论 -
Redis 3.0源码分析-内存分配zmalloc
Redis默认的内存分配器采用jemalloc,可选的分配器还有:glibc、tcmalloc。内存分配器为了更好地管理和重复利用内存,分配内存策略一般采用固定范围的内存块进行分配。例如jemalloc在64位系统中将内存空间划分为:小、大、巨大三个范围。每个范围内又划分为多个小的内存单元,如下所示:小:[8 byte],[16 byte, 32 byte, 48 byte, …, 128 b...原创 2019-06-05 11:32:38 · 9401 阅读 · 0 评论 -
Redis入门一:Redis实战读书笔记
Redis提供5种不同类型的数据结构,并存储键与5种不同类型的值之间的映射,各式各样的问题都可以自然地映射到这些数据结构上。通过复制、持久化和客户端分片等特性,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能,用户可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。(分片是一种将数据划分为多个部分的方法,对数据...原创 2019-05-30 14:25:32 · 11035 阅读 · 0 评论 -
Redis 3.0源码分析-数据结构与对象 skiplist intset ziplist
跳跃表 skiplist跳跃表由redis.h/zskiplistNode和redis.h/zskiplist两个结构定义,其中zskiplistNode结构用于表示跳跃表节点,而zskiplist结构用于保存跳跃表节点的相关信息。节点的分值是一个double类型的浮点数,跳跃表中的所有节点都按分值从小到大来排序。分值相同的节点将按照成员对象在字典序中的大小来进行排序,成员对象较小的节点会...原创 2019-05-30 14:23:02 · 9513 阅读 · 0 评论 -
Redis 3.0源码分析-数据结构与对象 SDS LIST DICT
SDSRedis定义的简单动态字符串(SDS)struct sdshdr { // buf 中已占用空间的长度 int len; // buf 中剩余可用空间的长度 int free; // 数据空间 char buf[];};从下面的测试中可以看出,该结构的大小为8字节。len指定buf数组中已使用字节的数量等于SDS所保存字符串的长度...原创 2019-05-29 15:10:45 · 9373 阅读 · 0 评论 -
MySQL必知必会读书笔记
MySQL必知必会书中数据库的创建创建数据库:create database crashcourse;执行SQL脚本:https://blog.youkuaiyun.com/czbqoo01/article/details/70037987MySQL必知必会书中脚本解析create.sql######################################### MySQL Cras...原创 2019-06-13 21:16:50 · 9215 阅读 · 0 评论 -
Redis 3.0源码分析-事件
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件和时间事件。文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。Redis基于Reactor模式开发了自己的网络事...原创 2019-06-04 09:47:22 · 9751 阅读 · 0 评论 -
Redis 3.0源码分析-客户端
Redis服务器状态结构的clients属性是一个链表,这个链表保存了所有与服务器连接的客户端的状态结构,对客户端执行批量操作,或者查找某个指定的客户端,都可以通过遍历clients链表来完成。/* With multiplexing we need to take per-client state. * Clients are taken in a liked list. * * 因为...原创 2019-06-04 15:29:46 · 9273 阅读 · 0 评论 -
Redis 3.0源码分析-服务器初始化与命令执行
redis的main函数在redis.c文件的最后(3933行)。一个Redis服务器从启动到能够接受客户端的命令请求,需要经过一系列的初始化和设置过程,比如初始化服务器状态,接受用户指定的服务器配置,创建相应的数据结构和网络连接等等。通过分析main函数我们可以了解这些流程。下面我们就简要分析一下Redis服务器启动流程。int main(int argc, char **argv) { ...原创 2019-06-04 16:19:55 · 9704 阅读 · 0 评论 -
Redis 3.0源码分析-服务器serverCron函数
Redis服务器中的serverCron函数默认每隔100毫秒执行一次,这个函数负责管理服务器的资源,并保持服务器自身的良好运行。在initServer函数中为serverCron创建时间事件,下面将对serverCron函数执行的操作进行完整介绍。/* This is our timer interrupt, called server.hz times per second. * *...原创 2019-06-04 21:06:23 · 9708 阅读 · 0 评论 -
Redis 3.0源码分析-数据库
Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每一项都是一个redis.h/redisDb结构。由redisServer结构的成员dbnum属性决定创建多少个数据库。在服务器内部,客户端状态redisClient结构的db属性记录了客户端当前的目标数据库。数据库键空间Redis是一个键值对数据库服务器,服务器中的每个数据库都由...原创 2019-06-04 21:08:58 · 9688 阅读 · 0 评论 -
计算机存储—大话存储II读书
CPU与北桥连接的总线叫做系统总线,也称为前端总线。南桥上一般集成众多外设的控制器,比如磁盘控制器、USB控制器等。设备地址映射:每个IO设备在启动时都要向内存中映射一个或多个地址,这个地址有8位长,又被称为IO端口。针对这个地址的数据,统统被北桥芯片重定向到总线上实际的设备上。假如,IDE磁盘控制器地址被映射到地址0xA0,CPU根据程序机器代码,向这个地址发出多条指令来完成一个读操作。...原创 2018-11-07 16:16:12 · 9878 阅读 · 0 评论
分享