传统存储介绍

什么是存储

存储就是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问。

  • 保存
  • 访问

我们一般从这三分方面了解存储:

  • 存储设备
  • 存储技术
  • 对外接口

计算机存储系统的层次图

这个图事大学时候的课本内容,我就不多讲了。计算机存储层次之所以是这个样子,是因为人性的贪婪。

怎么说呢,我们对存储系统始终有三个基本要求,即:

  • 速度快
  • 存储容量大
  • 成本低

寄存器

用于CPU内部各单元之间的周转,是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方,拥有非常高的读写速度。

寄存器和cpu速度相当,空间比较小在kb级别。

CPU内部的寄存器有很多种类型。

  • 数据寄存器
  • 地址寄存器
  • 指令寄存器 …

CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。通用寄存器的数据宽度决定了处理器一次可以运行的数据量。

高速缓存Cache

缓存是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用,它将一些经常使用的数据缓存到内存或者各种储存介质中,当再次使用时可以不用去数据库中查询,减少与数据库的交互,提高性能。

缓存又分为一级缓存、二级缓存、三级缓存,它们的作用范围不同:

  • 一级缓存是session级别的。也就是只有在同一个session里缓存才起作用,当这个session关闭后这个缓存就不存在了。比如在一个事务中同时查询同一个对象,则不会两次去数据库中查询。
  • 二级缓存是sessionFactory级别的。其缓存对同一个sessionFactory生产出来的session都有效。 我们通常使用其他的一些开源组件,比如 hibernate 经常使用的就是 EhCache,这个缓存在整个应用服务器中都会有效的,主要是为了存储一些比较稳定的数据,如权限,只有在用户修改了权限且重新登录时才能生效。
  • 三级缓存(如果有的话)是为读取二级缓存后未命中的数据设计的—种缓存,进一步提高CPU的效率。

注意:只有一级缓存是在CPU中的,一级缓存的读取需要2-4个时钟周期;二级缓存的读取需要10个左右的时钟周期;而三级缓存需要30-40个时钟周期,但是容量一次增大。


php laravel 框架中的 try catch

嗯,平时不怎么习惯使用 try catch。今天用起来竟然发现不生效。无法理解。

经过一番折腾之后,发现其实 ide 已经有做很好的提示了!

在类名前面添加斜杠即可:

这个问题不仅是 Exception 这个类而已,所有PHP自带的类都需要添加\


X86、X86_64、amd64、i386、i686区别

x86

intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集。

x84_64/amd64

实际上,x86_64,x64,AMD64基本上是同一个东西。

x86 CPU开始迈向64位的时候,AMD比 Intel 率先制造出了商用的兼容 x86 的CPU,AMD称之为AMD64。

而后 Intel 也开始支持 AMD64 的指令集,换了个名字,叫x86_64,表示是x86 指令集的64扩展。

i386

i386 适用于intel和AMD所有32位的cpu。

intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D 系列以及centrino P-M,core duo 等.

i686

i686 仍然属于 i386 体系,不过相对于386 CPU的特性作了指令优化。

i686 的软件包能在奔腾二代以上的cpu上执行,但基本不能在此之先的cpu如486上执行。而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(但不能发挥cpu的最佳性能)。


VIRTUALBOX 宿主机 SSH 连接虚拟机

VirtualBox 安装好系统后,默认网络连接是“网络地址转换(NAT)”,可以访问外网和宿主机,但是宿主机无法访问。

目前需要对虚拟机进行访问,所以记录一下设置过程。

网络桥接

设置桥接网络即可。让路由也给虚拟机分配一个IP。

查看ip


数据获取

转载自有哪些「神奇」的数据获取方式? - 知乎

大数据时代,用数据做出理性分析显然更为有力。做数据分析前,能够找到合适的的数据源是一件非常重要的事情,获取数据的方式有很多种,不必局限。下面将从公开的数据集、爬虫、数据采集工具、付费API等等介绍。给大家推荐一些能够用得上的数据获取方式,后续也会不断补充、更新。

一、公开数据库

1. 常用数据公开网站

UCI:经典的机器学习、数据挖掘数据集,包含分类、聚类、回归等问题下的多个数据集。很经典也比较古老,但依然活跃在科研学者的视线中。

国家数据:数据来源中华人民共和国国家统计局,包含了我国经济民生等多个方面的数据,并且在月度、季度、年度都有覆盖,全面又权威。

CEIC:最完整的一套超过128个国家的经济数据,能够精确查找GDP、CPI、进口、出口、外资直接投资、零售、销售以及国际利率等深度数据。其中的“中国经济数据库”收编了300,000多条时间序列数据,数据内容涵盖宏观经济数据、行业经济数据和地区经济数据.

万得:简要介绍:被誉为中国的Bloomberg,在金融业有着全面的数据覆盖,金融数据的类目更新非常快,据说很受国内的商业分析者和投资人的亲睐。

搜数网:已加载到搜数网站的统计资料达到7,874本,涵盖1,761,009张统计表格和364,580,479个统计数据,汇集了中国资讯行自92年以来收集的所有统计和调查数据,并提供多样化的搜索功能。

中国统计信息网:国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息,建立了以统计公报为主,统计年鉴、阶段发展数据、统计分析、经济新闻、主要统计指标排行等。

亚马逊:来自亚马逊的跨科学云数据平台,包含化学、生物、经济等多个领域的数据集。

figshare:研究成果共享平台,在这里可以找到来自世界的大牛们的研究成果分享,获取其中的研究数据。

github:一个非常全面的数据获取渠道,包含各个细分领域的数据库资源,自然科学和社会科学的覆盖都很全面,适合做研究和数据分析的人员。

2. 政府开放数据

北京市政务数据资源网:包含竞技、交通、医疗、天气等数据。

深圳市政府数据开放平台:交通、文娱、就业、基础设施等数据。

上海市政务数据服务网:覆盖经济建设、文化科技、信用服务、交通出行等12个重点领域数据。

贵州省政府数据开放平台:贵州省在政务数据开放方面做的确实不错。

Data.gov:美国政府开放数据,包含气候、教育、能源金融等各领域数据。