当前位置:首页 » 文件管理 » 缓存服务器开源

缓存服务器开源

发布时间: 2022-07-25 00:31:40

1. php开源工具哪些比较受欢迎

众所周知,软件行业是一个相对苦逼的行业,特别是遇到赶项目,很多程序猿就只有累成狗了。为了提高开发效率,让开发任务更简便、快捷,开源工具的使用是少不了的。今天小编整理了10款最受欢迎的php开源工具,分享给大家,希望可以帮助大家更便捷的开发php应用。
1、Monsta FTP
如果想在浏览器中设置一个FTP文件管理,你需要有一款像Monsta FTP一样的开源PHP或者Ajax Cloudware。不仅支持屏幕上的文件编辑,而且文件还可以被拖放到浏览器上实现快速上传。经测试Monsta FTP,支持所有主流浏览器,如:火狐,Chrome,IE浏览器,Safari浏览器等,并配备了多语言支持。
2、Pinba
Pinba使用只读格式的Mysql作为实时统计/监督服务器,几乎是一个MySQL存储引擎。它可以生成格式简单的统计报表,处理后通过UDP发送累计数据,并且还可以创建复杂的报表。
3、CaseBox
CaseBox是一个用于管理任务、记录和文档的开源PHP Web应用程序。它允许我们创建大量的目录,并将数据存储在一个类似于桌面界面的首选结构中。通过将指定了期限的任务分配给用户并跟踪性能,CaseBox极大地简化了工作流程。
4、Sylius
Sylius是一个基于Symfony 2的php开源工具,它允许你创建一个电子商务网站,并管理产品和类别复杂的网上商店。同时,Sylius还支持多种功能,如管理不同税率和运输方式。此外,Sylius还与支付网关(payment gateway)OmniPay集成而成为一款完美的电子商务工具。如果你用php开发了一个电子商务商城,不妨可以试试这个工具,它将极大的简化你的工作量。
5、Pico
Pico是一款开源的内容管理程序,使用Flat File文件作为其数据库,无需安装即可使用。使用这个开源工具,可以方便你在你所喜爱的文本编辑器中编辑储存在.md文件中的内容。
6、Munee
全面网站图书馆Munee,作为一款开源的php工具,可以让你优化和操作网站website assets、实现客户端和服务器端的资源缓存。同时Munee也可以集成PHP图像处理库,方便调整或裁剪图像并对它们进行缓存。
7、Phalcon PHP
Phalcon PHP是一款由C语言编写的web框架,提供了低资源消耗和高性能,适用于任何操作系统。
8、phpMyFAQ
phpMyFAQ是PHP FAQ(常见问题解答)的应用程序,同时也是一个优秀的FAQ系统。它可以管理用户、项目、类别和统计数据。phpMyFAQ中还自带一个先进的搜索系统,可帮助用户快速寻找到相关答案。
9、PHPImageWorkshop
PHP Image Workshop使用GD库来管理图像,允许以类似于Photoshop的方式编辑照片。同时,这款php开源工具也非常灵活,允许你叠加大量图像,使用旋转功能甚至缩略图。
10、DebugBar
DebugBar也是php开源应用程序中常用的一款工具,免费提供在线版本,并且可以集成到PHP 项目中。它包括通用库和流行库,支持Ajax请求,并且在页脚有一个JavaScript栏。
不管是什么语言的开发,要提高开发效率,掌握一些开源的工具都是少不了的。熟悉并掌握以上这10款PHP 开源工具,可极大的简化你的开发进程。如果你还没有使用过这些工具,不妨可以试试。

2. varnish缓存可以做正向带理吗

arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 erdens Gang 使用3台arnish代替了原来的12台Suid,性能比以前更好。但与老牌的suid相比,各有各的优劣势,网上大量的相对比较只是在其个人对自己熟悉的应用的最大使用上的发挥而已,可能suid到了有能力的人手上才足以发挥最强大的威力arnish采用了“isual Page Cache”技术,在内存的利用上,arnish比Suid具有优势,它避免了Suid频繁在内存、磁盘中交换文件,性能要比Suid高。通过arnish管理端口,可以使用正则表达式快速、批量地清除部分缓存,这一点是Suid不能具备的。 本人就varnish的一些见解与配置方法做简单的介绍与笔记实验环境:Red Hat Enterprise linux Server release 5.4 (Tikanga) 内核2.6.18-.el5yum install pcre-devel ##预先安装一个软件包,不然会提示错误tar zxvf varnish-2.1.3.tar.gzcd varnish-2.1.3 ./configure --prefix=/usr/local/varnish-2.1.3ke && ke install编辑配置文件,有模版,但太多注释,最好自己新建一个vim /usr/local/varnish-2.1.3/etc/varnish/varnish.conf ############下面附上配置文件的内容及注释########################http请求处理过程#1,receive请求入口状态,根据vcl判断pass还是lookup本地查询#lookup,在hash表中查找数据,若找到则进入hit状态,否则进入fetch状态#pass,选择后台,进入fetch状态#fetch,对请求进行后端的获取,发送请求,获得数据,并进行本地存储#deliver,将数据发送给客户端,进入done#done,处理结束##########配置后端服务器##############代码 代码如下:backend linuxidc01 { .host = "..1."; .port = ""; .probe = { .timeout = 5s; .interval = 2s; .window = 10; .threshold = 8; } }backend linuxidc02 { .host = "..1."; .port = ""; .probe = { .timeout = 5s; .interval = 2s; .window = 10; .threshold = 8; } }##############配置后端服务器组,进行健康检测6秒,使用random方式设置权重######## #########另一种方式round-robin则默认轮询机制####################代码 代码如下:director linuxidc random { .retries = 6; { .backend = linuxidc02; .weight = 2; } { .backend = linuxidc01; .weight = 2; } }##########定义访问列表,允许下列清除varnish缓存#######################代码 代码如下:acl local { "localhost"; ".0.0.1"; }########从url判断针对哪类后面服务器及缓存配置############################代码 代码如下:sub vcl_recv { if (re.http.host ~ "^linuxidc.vicp") #匹配域名跳转后台服务器 { set re.backend = linuxidc; } else { error "Unknown HostName!"; } if (re.reuest == "PURGE") #不允许非访问控制列表内的IP清除varnish缓存 { if (!client.ip ~ local) { error "Not Allowed."; return (lookup); } } #清除url中有jpg等文件的cookie if (re.reuest == "GET" && re.url ~ "\.(jpg|png|gif|swf|jpeg|ico)$") { unset re.http.cookie; } #判断re.http.X-Forwarded-For 如果前端有多重反向代理,这样可以获取客户端IP。 if (re.http.x-forwarded-for) { set re.http.X-Forwarded-For = re.http.X-Forwarded-For ", " client.ip; } else { set re.http.X-Forwarded-For = client.ip; }##varnish实现图片的防盗链# if (re.http.referer ~ ") # {# if ( !(re.http.referer ~ "" ||# re.http.referer ~ "" ) )# {# set re.http.host = "linuxidc.vicp";# set re.url = "/referer.jpg"; # }# return(lookup);# }# else {return(pass);} if (re.reuest != "GET" && re.reuest != "HEAD" && re.reuest != "PUT" && re.reuest != "POST" && re.reuest != "TRACE" && re.reuest != "OPTIONS" && re.reuest != "DELETE") { return (pipe); } #对非GET|HEAD请求的直接转发给后端服务器 if (re.reuest != "GET" && re.reuest != "HEAD") { return (pass); } ##对GET请求,且url里以.php和.php?结尾的,直接转发给后端服务器 if (re.reuest == "GET" && re.url ~ "\.(php)($|\?)") { return (pass); } ##对请求中有验证及cookie,直接转发给后端服务器 if (re.http.Authorization || re.http.Cookie) { return (pass);} { ##除以上的访问请求,从缓存中查找 return (lookup); } ##指定的font目录不进行缓存 if (re.url ~ "^/fonts/") { return (pass); }}sub vcl_pipe { return (pipe); }##进入pass模式,请求被送往后端,后端返回数据给客户端,但不进入缓存处理 sub vcl_pass { return (pass); }sub vcl_hash { set re.hash += re.url; if (re.http.host) { set re.hash += re.http.host; } else { set re.hash += server.ip; } return (hash); }##在lookup后如果在cache中找到请求的缓存,一般以下面几个关键词结束sub vcl_hit { if (!obj.cacheable) { return (pass); } return (deliver); } ##lookup后没有找到缓存时调用,以下面几个关键词结束,及调用fetch参数重新测试是否加入缓存sub vcl_miss { return (fetch); }#让varnish服务器缓存的类型,从后端取得数据后调用sub vcl_fetch { if (!beresp.cacheable) { return (pass); } if (beresp.http.Set-Cookie) { return (pass); } ##WEB服务器指明不缓存的内容,varnish服务器不缓存 if (beresp.http.Prag ~ "no-cache" || beresp.http.Cache-Control ~ "no-cache" || beresp.http.Cache-Control ~ "private") { return (pass); } ##对访问中get有包含jpg,png等格式的文件进行缓存,缓存时间为7天,s为秒 if (re.reuest == "GET" && re.url ~ "\.(js|css|mp3|jpg|png|gif|swf|jpeg|ico)$") { set beresp.ttl = 7d; } ##对访问get中包含htm等静态页面,缓存秒 if (re.reuest == "GET" && re.url ~ "\/[0-9]\.htm$") { set beresp.ttl = s; } return (deliver); }####添加在页面head头信息中查看缓存命中情况########sub vcl_deliver { set resp.http.x-hits = obj.hits ; if (obj.hits > 0) { set resp.http.X-Cache = "HIT ctel-bbs"; } else { set resp.http.X-Cache = "MISS ctel-bbs"; } }#########################以上为 varnish的配置文件##########################创建用户:groupadd useradd -g 创建 varnish_cache的缓存位置mkdir /data/varnish_cache启动varnishulimit -SHn ####设置文件描述符,因为我的机子性能并不好,可以按照自己的配置去设置/usr/local/varnish-2.1.3/in/varnishd -u -g -f /usr/local/varnish-2.1.3/etc/varnish/varnish.conf -a 0.0.0.0:80 -s file,/data/varnish_cache/varnish_cache.data,M -w ,,10 -t -T .0.0.1:####-u 以什么用运行 -g 以什么组运行 -f varnish配置文件 -a 绑定IP和端口 -s varnish缓存文件位置与大小 -w 最小,最大线程和超时时间 -T varnish管理端口,主要用来清除缓存#结束varnishd进程pkill varnishd启动varnishncsa用来将arnish访问日志写入日志文件:/usr/local/varnish-2.1.3/bin/varnishncsa -w /data/logs/varnish.log &每天0点运行,按天切割arnish日志,生成一个压缩文件,同时删除上个月旧日志的脚本(/var/logs/cutlog.sh):vim /usr/local/varnish-2.1.3/etc/varnish/cut_varnish_log.sh写入以下脚本:#!/bin/sh# This file run at 00:00date=$(date -d "yesterday" +"%Y-%m-%d")pkill -9 varnishncsamv /data/logs/varnish.log /data/logs/${date}.log/usr/local/varnish-2.1.3/bin/varnishncsa -w /data/logs/varnish.log &mkdir -p /data/logs/varnish/gzip -c /data/logs/${date}.log > /data/logs/varnish/${date}.log.gzrm -f /data/logs/${date}.logrm -f /data/logs/varnish/$(date -d "-1 month" +"%Y-%m*").log.gz定时任务:crontab -e00 00 * * * /usr/local/varnish-2.1.3/etc/varnish/cut_varnish_log.sh优化Linux内核参数vi /etc/sysctl.confnet.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.ip_local_port_range = 使配置生效/in/sysctl -p通过arnish管理端口,使用正则表达式批量清除缓存清除所有缓存/usr/local/varnish-2.1.3/bin/varnishadm -T .0.0.1: url.purge *$清除ige目录下所有缓存/usr/local/varnish-2.1.3/bin/varnishadm -T .0.0.1: url.purge /ige/.0.0.1: 为被清除缓存服务器 为被清除的域名 /static/ige/tt.jsp 为被清除的url列表/usr/local/varnish-2.1.3/bin/varnishadm -T .0.0.1: purge "re.http.host ~ && re.url ~ /static/ige/tt.jsp"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++一个清除Suid缓存的PHP函数代码 代码如下:<?php function purge($ip, $url) { $errstr = ''; $errno = ''; $fp = fsockopen ($ip, 80, $errno, $errstr, 2); if (!$fp) { return false; } else { $out = "PURGE $url HTTP/1.1\r\n"; $out .= "; $out .= "Connection: close\r\n\r\n"; fputs ($fp, $out); $out = fgets($fp , ); fclose ($fp); return true; } } purge("..0.4", "/index.php"); ?> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++配置开机自动启动arnishvim /etc/rc.d/rc.local在末行写入以下内容:ulimit -SHn /usr/local/varnish-2.1.3/in/varnishd -u -g -f /usr/local/varnish-2.1.3/etc/varnish/varnish.conf -a 0.0.0.0:80 -s file,/data/varnish_cache/varnish_cache.data,M -w ,,10 -t -T .0.0.1:/usr/local/varnish-2.1.3/bin/varnishncsa -w /data/logs/varnish.log &查看arnish服务器连接数与命中率:/usr/local/varnish-2.1.3/bin/varnishstat以上为varnish的状态, 0.00 0.06 Client reuests received 为服务端接收的客户端请求次数 0.00 0.01 Cache hits 为命中缓存,从缓存中取得数据返回给客户端的次数,即命中率11 0.00 0.00 Cache misses 为跳过pass缓存,从后端服务应用中取得数据返回给用户的次数用help看看可以使用哪些arnish命令:/usr/local/varnish-2.1.3/bin/varnishadm -T .0.0.1: help

3. 什么是网络多媒体视频服务器

网络视频服务器(DVS,Digital Video Server)主要用于以太网实时传输数字音视频的多媒体服务器,它能通过以太网(局域网/广域网)将实时的图像和声音同时通过网络传输。视频服务器可以在保留现有模拟视频监控设备的同时,将视频监视系统平滑升级到基于网络的视频监控系统,它非常适用于与现存的模拟CCTV(闭路电视监控)系统相集成。视频服务器为模拟视频设备带来了全新的功能特性,并彻底消除了系统对于同轴电缆、模拟监视器和DVR等专用设备的依赖。DVR将不再成为实现录像功能的必需品,因为在视频服务器的帮助下,视频图像可以通过标准的PC服务器来进行录制和管理。一台视频服务器通常具备1至4个模拟视频输入接口用于连接模拟摄像机,同时具备1个以太网接口用于连接到网络。与网络摄像机一样,它包含内置的Web服务器、图像压缩芯片以及操作系统,在这些部件的作用下,模拟视频输入将被转化为数字视频信号,并能够通过计算机网络进行传输和存储,从而大大简化了视频资源的访问和管理。

除了视频输入之外,视频服务器还可以通过同一个网络连接实现其他更多的功能和传输更多的信息,其中包括:数字化报警输入和输出(I/O接口,可用于触发服务器启动录像功能和传输视频,或者激活外部报警设备如警灯或打开房门等等)、音频、用于串行数据传输或PTZ设备控制的串行端口灯。通过图像缓存,视频服务器还可以发送报警前后的图像。视频服务器还可以连接更多的专用摄像机,例如高感光度黑白摄像机、微型摄像机或显微摄像机等等。

视频服务器用于监控领域,大家都很清楚,但不常见的应用,如流媒体。采用流媒体方式,即设立一台流媒体服务器,建立与视频服务器的连接,对该视频服务器的视频访问全部通过流媒体转发服务器软件模块来进行转发,使得该视频服务器的视频服务只占一个通道。这样保证与视频服务器只有一个连接,提高了播放性能和质量。

4. iPhone除了指尖浏览器外还有什么浏览器可以缓存视频

有以下几个浏览器:

1、网络浏览器。

网络浏览器,是一款简洁轻快、智能懂你的浏览器。依靠网络强大的搜索平台,在满足用户浏览网页的基础上,它整合网络体系业务优势,带给用户更方便的浏览方式,更舒适的网络特色上网体验。

2、千影浏览器

是一款功能强大的影视浏览器。强大的视频去广告功能,影视库、全网影视搜索功能与一体的在线播放器,Chrome内核、体积小、速度快、绿色安装、广告拦截、安全防护,一键触达海量优质影视资源。

3、猎豹浏览器

具有强大的视频缓存下载功能,超越所有传统浏览器与视频APP应用;用猎豹手机浏览器,你不仅仅可以在线观看,手指轻轻一点,所有视频直接下到本地。

4、Google Chrome

是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

5、QQ浏览器

支持断点续传,支持多任务同时下载,图片、音乐、小说、视频、游戏、软件无所不能。

5. 全球四个最大的四个开源库

开源世界中的那几个免费数据库发布时间:2011-11-22 09:34:30 来源:CSDN 评论:0 点击:1476 次 【字号:大 中 小】QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 网络空间 网络搜藏 开心网 复制 更多 0开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源...开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。盘点:开源社区那些免费的数据库软件MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植性。这样的一款数据库,自然能够支持几乎所有的操作系统,从Unix、Linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显着的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。非关系型数据库NoSQL从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。盘点:开源社区那些免费的数据库软件当然,NoSQL也是随着互联网Web2.0网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。首先推荐的是Oracle NoSQL Database,这是一个社区版。Oracle的这个NoSQL Database, 是在10月4号的甲骨文全球大全上发布的Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。其次推荐的是Membase。Membase是NoSQL家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,目前可以下载beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。并且,Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开 发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。通过兼容多种编程语言和框架,Membase具备了很好的复用性。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置 的告警信息。Membase的目标是提供对外的线性扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。 另外,对存储的数据进行再分配仍然是必要的。第三推荐的是Hibari。Hibari在日语中意思为“云雀”,它是一个专为高可靠性和大数据存储的数据库引擎,可用于云计算环境中,例如 webmail、SNS和其他要求T/P级数据存储的环境中。同时,Hibari也支持Java,C/C++,Python,Ruby和Erlang语言的客户端。第四推荐的是memcachedb。这是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。第五推荐的是Leveldb。这是一个Google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计,特别是LSM算法。LevelDB是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。XML数据库的优势XML数据库是一种支持对XML格式文档进行存储和查询等操作的数据管理系统。在系统中,开发人员可以对数据库中的XML文档进行查询、导出和指定格式的序列化。目前XML数据库有三种类型:XMLEnabledDatabase(XEDB),即能处理XML的数据库;NativeXMLDatabase(NXD),即纯XML数据库;HybridXMLDatabase(HXD),即混合XML数据库。关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。在这里,首要要推荐的XML数据库是Sedna。它号称是一款原生态的XML数据库,提供了全功能的核心数据库服务,包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery 规范,支持全文搜索以及节点级别的更新操作。第二款XML数据库是BaseX。这款数据库用来存储紧缩的XML数据,提供了高效的 XPath和XQuery的实现,同时,它还提供一个前端操作界面。盘点:开源社区那些免费的数据库软件第三款推荐的是XMLDB。这款数据库使用了关系型数据库来存储任意的XML文档,因为所采用的存储机制,所以文档的搜索速度特别快,同时执行XSL转换也相当快。XMLDB同时还提供了一个PHP的模块,可以应用在Web应用中。第四块推荐的是X-Hive/DB。它是一个为需要高级XML数据处理和存储功能的软件开发者设计的强大的专属XML数据库。X-Hive/DB Java API包含存储、查询、检索、转换和发表XML数据的方法。与传统关系型数据库相比,XML数据库具有以下优势:第一,XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。第二,提供对标签和路径的操作。传统数据库语言允许对数据元素的值进行操作,不能对元素名称操作,半结构化数据库提供了对标签名称的操作,还包括了对路径的操作。第三,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。XML数据库适合管理复杂数据结构的数据集,如果己经以XML格式存储信息,则XML数据库利于文档存储和检索;可以用方便实用的方式检索文档,并能够提供高质量的全文搜索引擎。另外XML数据库能够存储和查询异种的文档结构,提供对异种信息存取的支持。

6. 在抽象工厂模式中怎样使用memcached缓存数据

一、Memcached简介
memcached 常被用来加速应用程序的处理,在这里,我们将着重于介绍将它部署于应用程序和环境中的最佳实践。这包括应该存储或不应存储哪些、如何处理数据的灵活分布以 及如何调节用来更新 memcached 和所存储数据的方法。我们还将介绍对高可用性的解决方案的支持,比如 IBM WebSphere® eXtreme Scale。
所有的应用程序,特别是很多 web 应用程序都需要优化它们访问客户机和将信息返回至客户机的速度。可是,通常,返回的都是相同的信息。从数据源(数据库或文件系统)加载数据十分低效,若是每次想要访问该信息时都运行相同的查询,就尤显低效。
虽然很多 web 服务器都可被配置成使用缓存发回信息,但那与大多数应用程序的动态特性无法相适。而这正是 memcached 的用武之地。它提供了一个通用的内存存储器,可保存任何东西,包括本地语言的对象,这就让您可以存储各种各样的信息并可以从诸多的应用程序和环境访问这些信息。
二、基础知识
memcached 是一个开源项目,旨在利用多个服务器内的多余 RAM 来充当一个可存放经常被访问信息的内存缓存。这里的关键是使用了术语缓存:memcached 为加载自他处的信息提供的是内存中的暂时存储。
比如,考虑这样一个典型的基于 web 的应用程序。即便是一个动态网站可能也会有一些组件或信息常量是贯穿页面整个生命周期的。在一个博客站点内,针对单个 blog post 的类别列表不大可能在页面查看间经常性地变更。每次都通过一个对数据库的查询加载此信息相对比较昂贵,特别是在数据没有更改的情况下,就更是如此。从图 1 可以看到一个博客站点内可被缓存的页面分区。
图1.一个典型的博客页面内的可缓存元素

将这种结构放在 blog 站点的其他元素,poster 信息、注释 — 设置 blog post 本身 — 进行推断,可以看出为了显示主页的内容很可能需要发生 10-20 次数据库查询和格式化。 每天对数百甚至数千的的页面查看重复此过程,那么您的服务器和应用程序执行的查询要远远多于为了显示页面内容所需执行的查询。
通过使用 memcached,可以将加载自数据库的格式化信息存储为一种可直接用在 Web 页面上的格式。并且由于信息是从 RAM 而不是通过数据库和其他处理从磁盘加载的,所以对信息的访问几乎是瞬时的。
再强调一下,memcached 是一个用来存储常用信息的缓存,有了它,您便无需从缓慢的资源,比如磁盘或数据库,加载并处理信息了。
对 memcached 的接口是通过网络连接提供的。这意味着您可以在多个客户机间共享单个的 memcached 服务器(或多个服务器,如本文稍后所示的)。这个网络接口非常迅速,并且为了改善性能,服务器会故意不支持身份验证或安全性通信。但这不应限制部署选项。 memcached 服务器应该存在于您网络的内部。网络接口的实用性以及可以部署多个 memcached 实例的简便性让您可以使用多个机器上的多余 RAM 来提高您缓存的整体大小。
三、存储方法
memcached 的存储方法是一个简单的键/值对,类似于很多语言内的散列或关联数组。通过提供键和值来将信息存储到 memcached 内,通过按特定的键请求信息来恢复信息。
信息会无限期地保留在缓存内,除非发生如下的情况:
为缓存分配的内存耗尽 — 在这种情况下,memcached 使用 LRU(最近最少使用)方法从此缓存删除条目。最近未曾使用的条目会从此缓存中先删除,最旧的最先访问。
条目被明确删除 — 总是可以从此缓存内删除条目。
条目过期失效 — 各条目均有一个有效的期限以便针对此键存储的信息在过于陈旧时可从缓存中清除这些条目。
上述这些情况可以与您应用程序的逻辑综合使用以便确保缓存内的信息是最新的。有了这些基础知识后,让我们来看看在应用程序内如何能最好地利用 memcached。
四、何时使用memcached?
在使用 memcached 改进应用程序性能时,可以对一些关键的过程和步骤进行修改。
在加载信息时,典型的场景如图 2 所示。
图2.加载要显示的信息的典型顺序

一般而言,这些步骤是:
执行一个或多个查询来从数据库加载信息
格式化适合于显示(或进一步处理)的信息
使用或显示格式化了的数据
在使用 memcached 时,为配合这个缓存,可对应用程序的逻辑进行稍许修改:
尽量从缓存加载信息
如果存在,使用信息的被缓存版本
如果它不存在:
执行一个或多个查询来从数据库加载信息
格式化适合于显示或进一步处理的信息
将信息存储到缓存内
使用格式化了的数据
图 3 是对这些步骤的总结。
图3.在使用memcached时加载适合于显示的信息

数据加载成为了至多三个步骤的一个过程,从缓存加载数据或从数据库(视情况而定)加载数据并存储在缓存内。
当这个过程首次发生时,数据将正常地从数据库或其他数据源加载,然后再存储到 memcached 内。当下一次访问此信息时,它就会从 memcached 拉出,而不是从数据库加载,节省了时间和 CPU 循环。
问题的另一个方面是要确保如果更改了要存储在 memcached 内的信息,在更新后端信息的同时还要更新 memcached 的版本。这会让图 4 内所示的这个典型顺序发生稍许变化,如 图 5 所示。
图4.在一个典型的应用程序内更新或存储数据

图 5 显示了使用 memcached 后发生了变化的流程。
图5.在使用memcached时更新或存储数据

比如,仍以博客站点为例,在博客系统更新数据库内的类别列表时,更新应该遵循如下顺序:
更新数据库内的类别列表
格式化信息
将信息存储到 memcached 内
将信息返回至客户机
memcached 内的存储操作是原子的,所以信息的更新不会让客户机只获得部分数据;它们获得的或者是老版本,或者是新版本。
对于大多数应用程序,这两个操作是您惟一需要注意的。在访问他人使用的数据时,它会自动被添加到这个缓存内,而且如果对该数据进行了更改,此缓存内也会自动进行更新。
五、键、名称空间和值
memcached 另一个需要重点考虑的因素是如何组织和命名存储在缓存内的这些数据。从之前博客站点的例子中,不难看出需要使用一种一致的命名结构以便您能加载博客类别、历史和其他信息,然后再在加载信息(并更新缓存)时或者在更新数据(同样也要更新缓存)时使用。
使用的何种具体的命名系统特定于应用程序,但通常可以使用一种与现有应用程序类似的结构,并且这种结构很可能基于某种惟一识别符。当从数据库拉出信息或在整理信息集时,就会发生这种情况。
以 blog post 为例,可以在一个具有键 category-list 的项中存储类别列表。与此 post ID 对应的单个 post,比如 blogpost-29 相关的值都可以使用,而该项的注释则可以存储在 blogcomments-29内,其中 29 就是这个 blog post 的 ID。这样一来, 您就可以将各种各样的信息存储在缓存内,使用不同的前缀来标识这些信息。
memcached 键/值存储的简便性(以及安全性的缺乏)意味着如果您想要在使用同一个 memcached 服务器的同时支持多个应用程序,那么就可以考虑使用其他格式的量词来标识数据属于某种特定的应用程序。比如,可以添加像 blogapp:blogpost-29 这样的应用程序前缀。这些键是没有格式的,所以可以使用任何字符串作为键的名称。
在存储值的方面,应该确保存储在缓存内的信息适合于您的应用程序。比如,对于这个博客系统,您可能想要存储被博客应用程序使用的对象以便格式化博客信息,而不是原始的 HTML。如果同一个基础结构用在应用程序内的多个地方,这一点更具实用性。
大多数语言的接口,包括 Java™、Perl、PHP 等,都能串行化语言对象以便存储在 memcached 内。这就让您可以存储并随后从内存存储恢复全部对象,而不是在您的应用程序内手动重构它们。 很多对象,或它们使用的结构,都基于某种散列或数组结构。对于跨语言的环境,比如在 JSP 环境和 JavaScript 环境间共享相同信息,可以使用一种架构中立的格式,比如 JavaScript Object Notation (JSON) 甚或 XML。
六、填充并使用memcached
作为一种开源产品以及一种最初开发用来工作于现有开源环境内的产品,memcached 受大量环境和平台支持。与 memcached 服务器通信的接口有很多,并常常具有针对所有语言的多个实现。参见参考资料 以获得常用的库和工具箱。
要列出所有受支持的接口和环境不太可能,但它们均支持 memcached 协议提供的基础 API。这些描述已经被简化并应用在不同语言的上下文内,在这些语言中,使用不同的值可指示错误。主要的函数有:
get(key) — 从存储了特定键的 memcached 获得信息。 如果键不存在,就返回错误。
set(key, value [, expiry]) — 使用缓存内的标识符键存储这个特定的值。如果键已经存在,那么它就会被更新。期满时间的单位为秒,并且如果值小于 30 天 (30*24*60*60),那么就用作相对时间,如果值大于 30 天,那么就用作绝对时间 (epoch)。
add(key, value [, expiry]) — 如果键不存在就将这个键添加到缓存内,如果键已经存在就返回错误。如果您想要显式地添加一个新键而又不会因它已经存在而更新它,那么这个函数将十分有用。
replace(key, value [, expiry]) — 更新此特定键的值,如果键不存在就返回一个错误。
delete(key [, time]) — 从缓存中删除此键/值对。如果您提供一个时间,那么添加具有此键的一个新值就会被阻塞这个特定的时期。超时让您可以确保此值总是可以重新读取自您的数据中心。
incr(key [, value]) — 为特定的键增 1 或特定的值。只适用于数值。
decr(key [, value]) — 为特定的键减 1 或特定的值,只适用于数值。
flush_all — 让缓存内的所有当前条目无效(或到期失效)。
比如,在 Perl 内,基本 set 操作可以如清单 1 所示的那样处理。

清单 1. Perl 内的基本 set 操作

use Cache::Memcached;

my $cache = new Cache::Memcached {
'servers' => [
'localhost:11211',
],
};

$cache->set('mykey', 'myvalue');

Ruby 内的相同的基本操作如清单 2 所示。

清单 2. Ruby 内的基本 set 操作

require 'memcache'
memc = MemCache::new '192.168.0.100:11211'

memc["mykey"] = "myvalue"

在两个例子中可以看到相同的基本结构:设置 memcached 服务器,然后分配或设置值。其他的接口也可用,包括适合于 Java 技术的那些接口,让您可以在 WebSphere 应用程序内使用 memcached。memcached 接口类允许将 Java 对象直接序列化到 memcached 以便于存储和加载复杂的结构。当在像 WebSphere 这样的环境内进行部署时,有两个事情非常重要:服务的弹性(在 memcached 不可用时如何做)以及如何提高缓存存储量来改进在使用多个应用程序服务器或在使用像 WebSphere eXtreme Scale 这样的环境时的性能。我们接下来就来看看这两个问题。
七、弹性和可用性
有关 memcached 最常见的一个问题是:“若缓存不可用了,会发生什么情况呢?”正如之前章节中明示的,缓存内的信息不应该成为信息的的惟一资源。必须要能够从其他位置加载存储在缓存内的数据。
虽然,无法从缓存访问信息将会减缓应用程序的性能,但它不应该阻止应用程序的运转。可能会发生这样几个场景:
如果 memcached 服务宕掉,应用程序应该回退到从原始数据源加载信息并对信息进行显示所需的格式化。此应用程序还应继续尝试在 memcached 内加载和存储信息。
一旦 memcached 服务器恢复可用,应用程序就应该自动尝试存储数据。没有必要强制重载已缓存了的数据,可以使用标准的访问来用信息加载和填充缓存。最终,缓存将会被最常用的数据重新填充。
再次重申,memcached 是信息的缓存但并非惟一的数据源。memcached 服务器不可用不应该是应用程序的终结,虽然这意味着在 memcached 服务器恢复正常之前性能会有所降低。实际上,memcached 服务器相对简单,并且虽然不是绝对无故障的,但它的简单性的结果就是它很少会出错。
八、分配缓存
memcached 服务器只是网络上针对一些键存储值的一个缓存。如果有多台机器,那么很自然地会想要在所有多余机器上设置一个 memcached 的实例来提供一个超大的联网 RAM 缓存存储。
有了这个想法后,还有一种想当然是需要使用某种分配或复制机制来在机器之间复制键/值对。这种方式的问题是如果这么做反而会减少可用的 RAM 缓存,而不是增加。如图 6 所示,可以看出这里有三个应用程序服务器,每个服务器都可以访问一个 memcached 实例。
图6.多重memcached实例的不正确使用

尽管每个 memcached 实例都是 1 GB 的大小(产生 3 GB 的 RAM 缓存),但如果每个应用程序服务器只有其自己的缓存(或者在 memcached 之间存在着数据的复制),那么整个安装也仍只能有 1 GB 的缓存在每个实例间复制。
由于 memcached 通过一个网络接口提供信息,因此单个的客户机可以从它所能访问的任何一个 memcached 实例访问数据。如果数据没有跨每个实例被复制,那么最终在每个应用程序服务器上,就可以有 3 GB 的 RAM 缓存可用,如图 7 所示。
图7.多重memcached实例的正确使用

这个方法的问题是选择哪个服务器来储存键/值对,以及当想要重新获得一个值时,如何决定要与哪个 memcached 服务器对话。问题的解决方案就是忽略复杂的东西,比如查找表,或是寄望 memcached 服务器来为您处理这个过程。而 memcached 客户机则必须要力求简单。
memcached 客户机不必决定此信息,它只需对在存储信息时指定的键使用一个简单的散列算法。当想要从一列 memcached 服务器存储或获取信息时,memcached 客户机就会用一个一致的散列算法从这个键获取一个数值。举个例子,键 mykey 被转换成数值 23875 。是保存还是获取信息无关紧要,这个键将总是被用作惟一标识符来从 memcached 服务器加载,因此在本例中,“mykey” 散列转化后对应的值总是 23875。
如果有两个服务器,那么 memcached 客户机将对这个数值进行一个简单的运算(例如,系数)来决定它应将此值存储在第一个还是第二个配置了的 memcached 实例上。
当存储一个值时,客户机会从这个键确定出散列值以及它原来存储在哪个服务器上。当获取一个值时,客户机会从这个键确定出相同的散列值并会选择相同的服务器来获取信息。
如果在每个应用程序服务器上使用的是相同的服务器列表(并且顺序相同),那么当需要保存或检索同一个键时,每个应用程序服务器都将选择同一个 服务器。现在,在这个例子中,有 3GB 的 memcached 空间可以共享,而不是同一个 1 GB 的空间的复制,这就带来了更多的可用缓存,并很有可能会提高有多个用户情况下的应用程序的性能。
九、如何能不使用memcached?
尽管 memcached 很简单,但 memcached 实例有时候还是会被不正确地使用。
memcached不是一个数据库
最常见的 memcached 误用就是把它用作一个数据存储,而不是一个缓存。memcached 的首要目的就是加快数据的响应时间,否则数据从其他数据源构建或恢复需要很长时间。一个典型的例子就是从一个数据库中恢复信息,特别是在信息显示给用户前 需要对信息进行格式化或处理的时候。Memcached 被设计用来将信息存储在内存中以避免每次在数据需要恢复时重复执行相同的任务。
切不可将 memcached 用作运行应用程序所需信息的惟一信息源;数据应总是可以从其他信息源获取。此外,要记住 memcached 只是一个键/值的存储。不能在数据上执行查询,或者对内容进行迭代来提取信息。应该使用它来存储数据块或对象以备批量使用。
不要缓存数据库行或文件
虽然可以使用 memcached 存储加载自数据库的数据行,但这实际上是查询缓存,并且大多数数据库都提供各自的查询缓存的机制。其他的对象,比如文件系统的图像或文件的情况与此相同。很多应用程序和 web 服务器针对此类工作已经有了一些很好的解决方案。
如果在加载和格式化后,使用它来存储全部信息块,就可以从 memcached 获得更多的实用工具和性能上的改善。仍以我们的博客站点为例,存储信息的最佳点是在将博客类别格式化为对象,甚至是在格式化成 HTML 后。博客页面的构造可通过从 memcached 加载各个组件(比如 blog post、category list、post history 等)并将完成的 HTML 写回至客户机实现。
memcached并不安全
为了确保最佳性能,memcached 并未提供任何形式的安全性,没有身份验证,也没有加密。这意味着对 memcached 服务器的访问应该这么处理:一是通过将它们放到应用程序部署环境相同的私有侧,二是如果安全性是必须的,那么就使用 UNIX® socket 并只允许当前主机上的应用程序访问此 memcached 服务器。
这多少牺牲了一些灵活性和弹性,以及跨网络上的多台机器共享 RAM 缓存的能力,但这是在目前的情况下确保 memcached 数据安全性的惟一一种解决方案。
十、不要限制自己
除了不应该使用 memcached 实例的情况外,memcached 的灵活性不应忽视。由于 memcached 与应用程序处于相同的架构水平,所以很容易集成并连接到它。并且更改应用程序以便利用 memcached 也并不复杂。此外,由于 memcached 只是一个缓存,所以在出现问题时它不会停止应用程序的执行。如果使用正确的话,它所做的是减轻其余服务器基础设施的负载(减少对数据库和数据源的读操 作),这意味着无需更多的硬件就可以支持更多的客户机。
但请记住,它仅仅是个缓存!
结束语
在本文中,我们了解了 memcached 以及如何最佳地使用它。我们看到了信息如何存储、如何选择合理的键以及如何选择要存储的信息。我们还讨论了所有 memcached 用户都要遇到的一些关键的部署问题,包括多服务器的使用、当 memcached 实例消亡时该怎么做,以及(也许最为重要的)在哪些情况下不能使用 memcached。
作为一种开源的应用程序并且是目的简单而直白的应用程序,memcached 的功能和实用性均来自于这种简单性。通过为信息提供巨大的 RAM 存储空间、让它在网络上可用,然后再让它可通过各种不同的接口和语言访问到,memcached 可被集成到多种多样的安装和环境中。

7. golang有没有好的开源游戏框架

1.为什么golang的开发效率高? golang是一编译型的强类型语言,它在开发上的高效率主要来自于后发优势,不用考虑旧有恶心的历史,又有一个较高的工程视角。

8. 缓存服务器的缓存概念

这是两种主要的Web缓存:
直接缓存,将用户频繁访问的来自Internet服务器的Web对象的拷贝保存在企业本地网络中。
反向缓存,企业内部Web服务器的Web对象的拷贝保存在企业网络边缘的代理服务器上以提高外界访问企业站点的性能。
Web缓存可以根据不同等级进行配置:
本地缓存:将Web对象缓存的拷贝保存在本地计算机中。大多数流行的Web浏览器默认情况下保留一个先前访问对象的缓存。例如,Internet Explorer称之为“临时Internet文件”。本地缓存拷贝只是在用户频繁地从同一台机器访问页面时有用。
代理缓存:代理服务器是为公司内的多个用户/客户计算机缓存Web对象的单独机器。它们是位于客户端和托管的Web服务器之间的计算机,而且它们比本地缓存效率更高,因为在企业本地网络中的任何用户或计算机访问某个Web对象时,缓存拷贝对想访问该对象的任何其他用户/计算机是可用的,无需到Internet服务器上再次下载它。代理缓存可以在网络边缘与防火墙结合使用。
微软的ISA Server和BlueCoat的工具一样,既包括防火墙也包括缓存代理服务器。缓存服务器也可以是单独的机器,运行免费的缓存软件或商业产品,例如:
Linux版的Squid免费缓存代理
MOWS基于Java分布式web和缓存服务器
Vicomsoft RapidCache Server for Windows或Macintosh
WinProxy for Windows
可升级的缓存解决方案
随着公司的扩大,单一的Web缓存服务器可能无法处理所有的通信或存储足够的Web对象。在这种情况下,可以扩展缓存解决方案以建立一个缓存阵列——一组共同工作以便在组内分配缓存负载的缓存代理服务器。万一某个缓存服务器停机,还提供缺省的容量。
要在阵列中操作,缓存服务器必须能够彼此使用协议进行通信,例如:
WCCP(Web缓存协调协议),Cisco缓存产品以及诸如Squid这样的开源代理使用。
ICP(Internet缓存协议),被Squid和BlueCoat支持。
CARP(缓存阵列路由协议),被ISA Server Enterprise Edition用来管理缓存服务器阵列的失效转移和负载平衡。
CARP能够支持几乎无限的线性扩展以满足快速增长型企业的需求。当向某个阵列中添加或移除一台服务器时,CARP自动调整并再指定URL以有效地分布负载。
缓存阵列能够以等级的或分布式的架构排列。在分布式缓存中,阵列中所有代理服务器处在一个“平等地位”而且负载在它们之间进行分配。在分等级的缓存中,代理以链式进行配置,它们处在不同的等级,所以服务器或阵列连接到其它离Internet更近的服务器或阵列(离Internet最近的那些服务器或阵列被看作“上游的”,那些最远的被看作“下游的”)。这样,缓存内容会尽可能地靠近需要它的用户。
阵列是高度可升级的,因为可以向阵列添加服务器,或向分等级的架构增加阵列等级,而无需扰乱目 前的缓存解决方案。
另一个可扩展性问题是使用缓存减少分支机构网络带宽的能力。分支机构代理可能没有直接连接到Internet,但是可以使用拨号连接或办公室到办公室的WAN连接以便从总公司的上游代理服务器上请求Web对象。
另一个选择是为需要向消费者提供基于Web的应用,可使用诸如由Akamai提供的服务。他们的Web Application Accelerator服务通过下列方法优化性能:
向他们的边缘服务器动态映射请求,并监视Internet路由以便在最快和最可靠的路由上传输。
利用压缩技术和预取技术(pre-fetching)以最小化带宽使用率。
用安全套接层(SSL)保护Web传输。
缓存支持的有些硬件标准:
目前缓存支持的硬件标准:
内存不超过4G,超过的只识别4G。
硬盘不超过2T,超过的只识别2T
存储硬盘数量最大支持4块(如果系统盘是电子盘不包含在内)
另外推荐使用INTEL的机器和网卡。

9. cdn 如何实现基础架构

CDN基本原理
最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:

①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。

②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。

③用户向CDN的全局负载均衡设备发起内容URL访问请求。

④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。

⑥全局负载均衡设备把服务器的IP地址返回给用户。

⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

CDN关键组件

  • LVS做四层均衡负载

  • DR模式
    双LVS做Active-Active互备
    负载均衡算法采用wrr

  • Tengine做七层负载均衡

  • 阿里基于Nginx开发的高性能HTTP服务器,已经开源
    主动健康检查
    SPDY v3支持

  • Swift做HTTP缓存

  • 高性能Cache
    磁盘(SSD/SATA)

    CDN基础架构

    CDN部署架构

热点内容
伟峰办公怎么查服务器地址 发布:2025-04-01 19:33:43 浏览:318
脚本置父窗口 发布:2025-04-01 19:19:52 浏览:311
微信营销源码下载 发布:2025-04-01 18:55:22 浏览:886
路由器搭建web服务器 发布:2025-04-01 18:52:56 浏览:719
vc编译器版本 发布:2025-04-01 18:48:59 浏览:807
sqlserverbak 发布:2025-04-01 18:48:57 浏览:56
安卓手机如何打开7z文件视频教程 发布:2025-04-01 18:35:06 浏览:404
本田风尚算什么配置 发布:2025-04-01 18:29:56 浏览:6
30p压缩机 发布:2025-04-01 18:29:54 浏览:655
烧录器编程 发布:2025-04-01 18:21:09 浏览:462