HandlerSocket
推荐url: http://www.uml.org.cn/sjjm/201211093.asp
===========================
HandlerSocket::openIndex ( int $id, string $db, string $table, string $index, string $fields )
参数:
$id HandlerSocket ID; 1 SELECT, 2 UPDATE, 3 INSERT, 4 DELETE。
$db 数据库名
$table 表名
$index 索引名, 可以是手动创建的索引名。这个参数可为空,一般指定时是用于 SELECT,eg: 指定为主键:HandlerSocket::PRIMARY
$fields 字段名(多个字段名,用逗号分隔),可为空。
返回值:
成功时返回 TRUE, 反之亦然。
HandlerSocket::executeSingle ( int $id, string $op, array $fields [, int $limit, int $skip, string $modop, array $values, array $filters, int $invalues_key, array $invalues ] )
参数:
$id HandlerSocket ID; 1 SELECT, 2 UPDATE, 3 INSERT, 4 DELETE。
$op 操作符,有如下可选项, ‘=’, ‘>=’, ‘<=’, ‘>’, ‘<’, ‘+’。
$fields 查询中所用到的字段,数组,其长度必须等于或小于指定的列数。
$limit 最多影响的行数(最开始根据这个函数名称有在怀疑这个参数,测试时发现,如果存在满足条件的多条记录时,会根据这个参数指定的值返回记录数)。
$skip 在检索记录前忽略掉的行数。
$modop 指定修改操作,可选值:’U', ‘D’。
$values 数组,用于做 UPDATE 操作时指定修改的值。
$filters 过滤的选项。
$invalues_key ? (enabled : 0 / disabled : -1).
$invalues IN options
返回值:
返回做对应操作时的执行结果。
HandlerSocket::executeMulti
在一次调用中执行多个操作,即多个 HandlerSocket::executeSingle 的合并。
public mixed HandlerSocket::executeMulti ( array $requests )
参数:
$requrest 多组 executeSingle 参数,用数组的形式体现。
注意:
等同于:HandlerSocket::executeSingle($requests00, $requests01, ...), HandlerSocket::executeSingle($requests10, ...) ...。
返回结果:
返回做对应操作时的执行结果。
例子:
$retval = $hs->executeMulti(
array( array(1, '=', array(10007), 1, 0),
array(1, '=', array(10459), 1, 0))
);
HandlerSocket::executeUpdate ( int $id, string$op, array $fields, array $values [, int $limit, int $skip, array $filters, int $invalues_key, array $invalues ] )
参数:
$id HandlerSocket ID; 2 UPDATE 。
$op 操作符,有如下可选项, ‘=’, ‘>=’, ‘<=’, ‘>’, ‘<’, ‘+’。
$fields 查询中所用到的字段,数组,其长度必须等于或小于指定的列数。
$values UPDAET 时指定修改的值。
$limit 最多影响的行数。
$skip 在检索记录前忽略掉的行数。
$filters 过滤的选项。
$invalues_key ? (enabled : 0 / disabled : -1).
$invalues IN options
注意:
等同于:HandlerSocket::executeSingle($id, $op, $fields, $limit, $skip, 'U', $values, $filters, $invalues_key, $invalues)。
返回值:
返回做对应操作时的执行结果。
HandlerSocket::executeDelete ( int $id, string $op, array $fields [, int $limit, int $skip, array $filters, int $invalues_key, array $invalues ] )
参数:
$id HandlerSocket ID; 4 DELETE 。
$op 操作符,有如下可选项, ‘=’, ‘>=’, ‘<=’, ‘>’, ‘<’, ‘+’。
$fields 查询中所用到的字段,数组,其长度必须等于或小于指定的列数。
$limit 最多影响的行数。
$skip 在检索记录前忽略掉的行数。
$filters 过滤的选项。
$invalues_key ? (enabled : 0 / disabled : -1).
$invalues IN options
注意:
等同于:HandlerSocket::executeSingle($id, $op, $fields, $limit, $skip, 'D', NULL, $filters, $invalues_key, $invalues)。
返回值:
返回做对应操作时的执行结果。
HandlerSocket::executeInsert ( int $id, array $values )
参数:
$id HandlerSocket ID; 3 INSERT 。
$values HandlerSocket::openIndex 指定的字段参数所对应的值,但是以数组的形式体现。
注意:
等同于:HandlerSocket::executeSingle($id, '+', $values, 0, 0, NULL, NULL, NULL) ,第三个参数中指定的值必须和在此之前调用 HandlerSocket::openIndex 时第五个参数指定的字段对应。
返回值:
返回做对应操作时的执行结果。
HandlerSocket::getError ( void )
返回值:
返回最近的错误信息(时间上)
mysql --- sql --- storage
================================
MYSQL结构
-->应用层(访问接口:admin,client,query users)
-->功能层(查询处理[Query],事务管理[Transaction],回复管理[Recovery],存储管理[Storage])
-->物理层(数据文件、日志文件、统计资料、原数据、索引)
================================
关系数据库与非关系型数据库(NoSQL):
关系数据库:通过实体 - 关系模型(E-R 模型)来进行建模,即以表和表之间的关系来建模,适用于,用来存储数据条目的类型同构的表格型数据。如果领域对象模型中不同对象之间的关系比较复杂,则需要使用繁琐的对象关系映射技术(Object-Relationship Mapping,ORM)来进行转换。
非关系型数据库(NoSQL):包括键值对数据库、面向文档数据库和图形数据库等。
================================
redis:
http://bigboy.iteye.com/blog/1569016
================================
Neo4j:
高性能的 NoSQL 图形数据库,使用数据结构中图(graph)的概念来进行建模。
Neo4j 中两个最基本的概念是节点和边。节点表示实体,边则表示实体之间的关系。节点和边都可以有自己的属性。不同实体通过各种不同的关系关联起来,形成复杂的对象图。Neo4j 同时提供了在对象图上进行查找和遍历的功能。
================================
zookeeper:
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
对kafka系统的负载均衡步骤:
Zookeeper 协调控制
1. 管理broker与consumer的动态加入与离开。
2. 触发负载均衡,当broker或consumer加入或离开时会触发负载均衡算法,使得一
个consumer group内的多个consumer的订阅负载平衡。
3. 维护消费关系及每个partion的消费信息。
Zookeeper上的细节:
1. 每个broker启动后会在zookeeper上注册一个临时的broker registry,包含broker的ip地址和端口号,所存储的topics和partitions信息。
2. 每个consumer启动后会在zookeeper上注册一个临时的consumer registry:包含consumer所属的consumer group以及订阅的topics。
3. 每个consumer group关联一个临时的owner registry和一个持久的offset registry。对于被订阅的每个partition包含一个owner registry,内容为订阅这个partition的consumer id;同时包含一个offset registry,内容为上一次订阅的offset。================================
kafka
Kafka是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为 (登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统及进程状态) 部署结构:![]()
可以进行topic,groupid,part细分,消息会存储在系统硬盘文件上,据说17w qps http://blog.chinaunix.net/uid-20196318-id-2420884.html
================================
storm
================================
hadoop
================================
python:
是少有的一种可以称得上即简单又功能强大的编程语言,
据说特点有:简单,易学,免费、开源,高层语言,可移植性,解释性,面向对象,可扩展性,可嵌入性,丰富的库。
楼主PS:目前网上多为python2教程,据说从2013年开始python3也慢慢在强大起来,慢慢成为主流!!
http://www.php100.com/manual/Python/ (python2教程)
================================
go语言
================================
thrift
================================
NSQ
================================