数据库系统概论
数据库核心术语
数据
数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号称为数据。
描述事物的符号多种多样,所以数据有多种表现形式。
数据的表现形式还不能完全地表达其内容,需要经过解释,数据和关于数据的解释是密不可分的,每一个数据都有它的意义,数据的解释指的是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库
数据库就是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。
数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号称为数据。
描述事物的符号多种多样,所以数据有多种表现形式。
数据的表现形式还不能完全地表达其内容,需要经过解释,数据和关于数据的解释是密不可分的,每一个数据都有它的意义,数据的解释指的是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库就是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。
复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。
复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主库和备库之 间可以有多种不同的组合方式。
MySQL 支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录 bin log、在备库重放日志的方式来实现异步的数据复制。这意味着:复制过程存在时延,这段时间内,主从数据可能不一致。
Redis 服务器是一个事件驱动程序,服务器需要处理两类事件:
文件事件(file event)
- Redis 服务器通过套接字(Socket)与客户端或者其它服务器进行通信,文件事件就是对套接字操作的抽象。服务器与客户端(或其他的服务器)的通信会产生文件事件,而服务器通过监听并处理这些事件来完成一系列网络通信操作。时间事件(time event)
- Redis 服务器有一些操作需要在给定的时间点执行,时间事件是对这类定时操作的抽象。关键词:
文件事件
、时间事件
关键词:
Pipeline
Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。通常情况下,一个 Redis 命令的请求、响应遵循以下步骤:
显然,如果每个 Redis 命令都发起一次请求、响应,会很低效。因此,Redis 客户端提供了一种批量处理技术,即
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。
Redis 有两种发布订阅模式
- 基于频道(Channel)的发布订阅
- 基于模式(Pattern)的发布订阅
关键词:
订阅
、SUBSCRIBE
、PSUBSCRIBE
、PUBLISH
、观察者模式
Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。
关键词:
对象
、SDS
、链表
、字典
、跳表
、整数集合
、压缩列表
SDS 是 Simple Dynamic String 的缩写,即简单动态字符串。Redis 为 SDS 做了一些优化,以替代 C 字符串来表示字符串内容。此外,SDS 还被 Redis 用作缓冲区(buffer),如:AOF 模块中的 AOF 缓冲区;客户端状态中的输入缓冲区。