1 概述
Cache Server内存数据库是目前业内运行速度最快,功能最强大的内存数据库系统。产品定位于内存数据库系统和提供高端高性能系统的开发、处理平台。
Cache Server内存数据库是将所有数据加载到物理内存,不需要访问磁盘就直
接访问数据,从而获得极高的存取速度和极强的并发访问能力的数据库管理系统,在设计风格上兼容主流数据库(MS SQL SERVER、SYBASE)的特点,客户端通过TCP网络的方式来访问Cache Server,后续版本将支持共享内存方式和进程内方式(以动态库方式嵌入到程序中)。
Cache Server网络内存数据库是具有自主知识产权的企业级内存数据库,是作
者多年工作经验的结晶。Cache Server提供详细的中文文档(安装手册、使用手册、开发文档、练习手册、通讯协议等)和服务。
Cache Server内存数据库将数据存储于物理内存中并进行高速处理及操作,并
针对内存数据库的特点进行了优化,采用先进的体系架构、数据缓存、快速算
法、并行操作、异步处理技术。
Cache Server提供了和传统关系数据库管理系统(MS SQL SERVER、Oracle、Sybase、DB2、mysql)的访问接口,可以以同步或异步方式和RDBMS交互。
Cache Server内存数据库为需要容错服务的系统提供实时数据库复制功能和双
机功能,使系统可以实现高性能、高可用性、数据库一致性。Cache Server内
存数据库能够为需要实时性事务处理的应用系统提供高性能、高可用性、容错能力,特别是在通信、金融、电力等行业,能够最大限度的发挥系统的处理能力。
另外Cache Server拥有强大的编程能力,拥有业内功能最强大的内存数据库脚本,使Cache Server不只作为数据的高速缓存服务器,更能够实现复杂的业务逻辑,通过编写数据库脚本和存储过程实现以前通过C/C++编程才能实现的强大功能。
2 版权说明
1、 本软件为免费软件,用户可用于学习、测试、商业用途,本软件没有功能上的限制和使用期限限制,可自由复制、传播。
2、 用户可发邮件到Freeland007@163.com 向作者获取最新版本。欢迎用户朋友
对本软件提出宝 贵意见,作者会及时修改软件的BUG,并对软件进行持续的
改进。
3、 作者联系方式
e-mail:freeland007@163.com
QQ: 723273055
电话:13410398634
3 产品技术特点
3.1 系统结构简介
Cache Server在设计上参照目前主流数据库MS SQL SERVER(Sybase)的结构特点。
Cache Server由数据库、系统用户、远程连接、复制等对象组成,每个数据库由数据库表、存储过程、索引等对象组成。
其中数据表支持多个索引,支持单列唯一索引、单列非唯一索引、多列复合唯一索引、多列复合非唯一索引。支持精确查询、模糊查询、分组查询、排序等功能。
表分为系统表和用户表,用户表分为普通用户表、局部临时表、全局临时表。
系统支持存储过程,存储过程由专用的Cache SQL脚本编写,Cache SQL在语法特点上兼容MS SQL SQL(Sybase)的Transact-SQL脚本,对于有使用MS SQL SERVER、Sybase经验的开发人员更容易掌握。Cache SQL功能强大,可编写功能强大脚本。
存储过程分为系统存储过程和用户存储过程,其中用户存储过程分为普通存储过程、局部临时存储过程、全局临时存储过程。
3.2 运行效率高
Cache Server的内存数据表采用独特高效的数据结构保存记录,根据索引操作记录(查询、插入、删除、更新)记录的耗时和表记录的数量无关;保证系统在有庞大数量记录情况下,仍然保持高效运行;在频繁插入、删除、修改记录的情况下,系统可仍然保持运行稳定,目前Cache Server是业内运行速度最快的内存数据库系统。
由于支持客户端的异步访问,可以在单连接上实现并发处理,大大提高处理效率。
3.3 良好的缓冲机制
Cache Server在运行期间对内存和对象采用了缓冲机制,包括对表记录、字段、索引、会话线程、存储过程执行实例,系统在运行期间根据运行情况进行动态调整,也可通过手工配置和优化缓存的使用。
3.4 性能稳定
Cache Server的内存数据表采用高效的数据结构和内存缓冲技术,在系统长期运行时不会出现性能波动和恶化,另外在表记录数量不稳定的情况下,也能保持稳定的运行性能。
3.5 高可用性
1、 系统提供强大的容错能力,可以保证7x24运行
2、 采用双机方式,在主机出现故障时,备机接管服务,保证系统不间断运行。
3、 采用主备机方式时,主机上数据的的修改通过日志的方式实时发送到备机,备机进行日志恢复,保证主备机数据的一致性。
4、 提供完整的数据备份和恢复机制,保障业务数据安全。
3.6 可维护性
系统提供管理工具,可以远程控制系统的运行和维护,同时服务端的主控界面可以实时了解系统的运行信息。
3.7 采用开放式通讯协议
Cache Server和客户端的通讯采用标准的HTTP 1.1协议,在此协议基础上实现应用层的协议。通过扩展HTTP的头部字段实现了登陆信息、会话控制信息、长短连接等;HTTP的消息体采用文本的方式,客户端向Cache Server发送请求时,HTTP消息体为Cache SQL脚本;当Cache Server返回应答时,HTTP消息体返回结果,客户端对返回结果进行解析。
通讯协议向开发人员公开,协议简单易于解析,为了方便开发,同时提供了API,开发人员直接调用API 就可进行业务开发。
通讯协议特点:
1、 采用标准的HTTP 1.1协议,并进行相应的扩展。
2、 支持长连接、短连接、半长连接
3、 支持同步访问模式和异步访问模式
4、 利用HTTP头部保存会话属性,将来的协议升级可通过扩展字段。
5、 请求HTTP消息体为可读的SQL脚本,单次最大提交32K字节;
应答HTTP消息体为格式化的文本,保存Cache Server返回的消息,例如:
执行状态、错误文本信息、存储过程返回参数、结果集、影响行数等
信息。
6、 支持用户鉴权
7、 支持流量控制
8、 控制是否返回给客户端信息
包括:执行状态、错误文本信息、存储过程返回参数、结果集、影响行数等
信息
3.8 支持同步、异步访问方式
Cache Server支持客户端的同步访问方式和异步访问方式。
同步访问方式:
客户端在发送HTTP访问请求后,等待Cache Server的处理结果,在上次请求的应答没有返回结果前,不会发送后续的请求。
异步访问方式
客户端在与Cache Server的连接上可以连续发送请求,不用等待上一次请求的处理结果,Cache Server依次执行请求并返回结果。采用异步访问方式可以在单个连接上实现并发访问,节约了Cache Server的系统资源(线程、CPU、内存、连接),相对与同步方式大大提高了运行效率。在HTTP的头部通过UNID流水号字段来标识每个请求。
Cache Server同时支持同步和异步访问方式,采用同步还是异步访问方式由客户
端控制。
3.9 支持Cache SQL脚本
Cache Server支持功能强大的Cache SQL脚本,该脚本是结构化的编程语言,风格和功能上兼容MS SQL SERVER(或Sybase)的Transact SQL。
Cache SQL语言有如下功能:
1) 支持全局变量、局部变量、会话变量、存储过程参数
2) 支持调用存储过程,调用存储过程支持输入参数、输出参数。
3) 支持调用远程存储过程,调用远程存储过程支持输入参数、输出参数。
4) 支持if、else if、else选择结构,以及if、else if、else嵌套
5) 支持while循环以及嵌套,支持break、continue语句
6) 支持数字计算、字符串、关系运算、逻辑运算、位运算、单元运算等
7) 支持任意复杂的表达式
8) 支持数据表操作语句
(1)select
select phone as '手机', remainder from orderinfo
select * remainder from orderinfo
declare @sex tinyint
declare @name char(16)
declare @age smallint
declare @address char(128)
declare @email char(128)
select @sex = sex, @name = name,@age = age, @address = address, @email
= email from personinfo where index cardid cardid = ‘123456789012345670’
2)delete
示例:
delete from personinfo
delete from personinfo where index cardid cardid =
'123456789012345680'
3)update
示例:
update personinfo set age = age + 1
update personinfo set Sex = 0, name= '王0', Age = 21, address = ,
'广东省深圳市南山区0栋', email = 'wangling@cacheserver.com.cn' where
index cardid cardid = '123456789012345680'
4)insert
5)match
6)group by
Cache SQL支持分组聚合函数:max、min、sum、count、avg和多列分组
功能, 示例如下:
select sum(remainder) + min(remainder), avg(remainder), count(*) from orderinfo group by phone
select phone, sum(remainder) + min(remainder), avg(remainder), count(*) from orderinfo group by phone
select phone, sum(remainder) + min(remainder), avg(remainder), count(*) from orderinfo group by phone
select spid,servicecode, count(*), sum(remainder) from orderinfo group by spid, servicecode
7)having
select phone, count(*),from orderinfo group by phone having filter sum(remainder) > 1000
select phone, sum(remainder) + min(remainder), avg(remainder),count(*) from orderinfo group by phone having index phone phone = '13912345671' filter count(*) > 1
8)order by
支持单列和多列排序,支持分组排序功能,示例如下:
select cardid, age, name from personinfo order by age
select cardid, age, name from personinfo order by age asc
select cardid, age, name from personinfo order by age desc
select * from orderinfo order by spid, serviceid, phone
select phone, count(*) from orderinfo group by phone order by
count(remainder)
select phone, count(*) from orderinfo group by phone order by count(remainder)
9) 支持数据库对象操作语句
create database、drop database、use database、
create user、drop user、
create table、drop table、create index、drop index
create procedure、drop procedure
等语句。
10)支持游标操作
declare @cardid bigint
declare @sex tinyint
declare @name char(32)
declare @age int
declare @address char(128)
declare @salary smallint
open personcursor for select * from personinfo
fetch first from personcursor into @cardid,@sex,@name,@age,@address,@salary
while(@@fetch_status = 0)
begin
print i64tos(@cardid, 10) + ' ' +itos(@sex, 10) + ' ' + @name+ ' ' + itos(@age, 10) + ' ' + @address + ' '+ itos(@salary , 10)
fetch next from personcursor into
@cardid,@sex,@name,@age,@address,@salary
end
close personcursor
10) 支持执行动态SQL语句
示例:
declare @table char(32)
select @table = 'personinfo'
declare @sql char(1024)
select @sql = 'select * from ' + @table
exec sql @sql
10)支持返回多个结果集、打印信息、影响条数、输出参数值等信息
13)支持调用远程存储过程,即一个Cache Server的存储过程可以调用另外
一个Cache Server实例中的存储过程。
14)批量数据导入
1) import语句
2) select into 方式
15)批量数据导出
export语句
16)访问传统关系数据库(MS SQL SERVER、Oracle等)
在Cache Server上定义外部数据源,在Cache SQL脚本中可以调用MS SQL SERVER(或Oracle等)的存储过程,在Cache SQL的调用语句中
17)支持丰富的功能函数
1) 数值计算
2) 字符串计算
3) 编码函数
4) 时间函数
5) 数据类型转换
zrl20888 于 2009-06-07 06:46:41发表:
很好
q12530 于 2009-06-06 01:39:19发表:
我也来顶下。好东西希望越做越好!
bmcqqi 于 2009-06-06 00:02:15发表:
支持下
wangdu2002 于 2009-06-05 23:44:40发表:
支持下,希望越做越完善。