adodb、smarty、memcache的工作原理

memcached 的工作原理

首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

与许多 cache 工具类似,Memcached 的原理并不复杂。它采用了C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。一旦启动,服务就一直处于可用状态。Memcached 的目前版本是通过C实现,采用了单进程,单线程,异步I/O,基于事件 (event_based) 的服务方式.使用 libevent 作为事件通知实现。多个 Server 可以协同工作,但这些 Server 之间是没有任何通讯联系的,每个 Server 只是对自己的数据进行管理。Client 端通过指定 Server 端的 ip 地址(通过域名应该也可以)。需要缓存的对象或数据是以 key->value 对的形式保存在Server端。key 的值通过 hash 进行转换,根据 hash 值把 value 传递到对应的具体的某个 Server 上。当需要获取对象数据时,也根据 key 进行。首先对 key 进行 hash,通过获得的值可以确定它被保存在了哪台 Server 上,然后再向该 Server 发出请求。Client 端只需要知道保存 hash(key) 的值在哪台服务器上就可以了。

其实说到底,memcache 的工作就是在专门的机器的内存里维护一张巨大的 hash 表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率(当然花钱就是必不可免的事了,听说 MySpace 的每台 Cache 服务器都配备了至少 64G 的内存)。但是也要注意 memcache 不是万能的,毕竟网络方面的不稳定因素还是比较多的,如果不是很大的应用,我建议大家使用一些本地的轻量级的 Cache 库,比如 PHP 的 Cache_Lite 或者 Java 的 FileCache 等,最后希望大家读完这篇能有所收获 :)

 

 

 

adodb工作原理

 

adodb组件是在php与数据库之间的东东,它带有缓存sql的功能,若使用此功能,则将sql查询出来的结果缓存到硬盘中的制定位置,若下次使用同样的sql则直接使用缓存文件内容,而不必链接数据库!

 

smarty工作原理

 

Smarty 是一款流行的模板引擎类库。

 

所谓模板引擎,就是一个用于执行 PHP 和模板页面的中间件。在开发网站或者其他基于 Web应用时,美工设计人员根据实际需要使用模板语言设计出相应的模板页面,而负责编写程序的程序员不需要对模板进行任何修改,只需要在另外一个 PHP 代码中对模板中的变量进行赋值即可。

 

Smarty 模板引擎一方面读取模板文件中的页面样式,一方面读取PHP程序并进行编译,然后结合模板文件和PHP程序并进行编译,得到编译后的PHP文件,最后在浏览器上将页面输出。& B0 P5 z. f! `, J7 G8 L
由于这一过程是一个比较复杂的过程,在实际运行时会消耗很多时间,不利于用户在浏览器上的访问。因此,Smarty类库使用了先编译后执行的机制。也就是说,如果在页面被访问了一次以后,模板文件和PHP代码都没有发生任何变化,则Smarty将直接调用编译过的PHP文件并将其输出。这一机制节省了编译的时间,保证了用户访问的快捷。

 

    使用模板引擎开发网站主要有以下两点好处: 

  • 高效:在开发的过程中使美工人员和程序员分工明确,有效地提高效率。
  • 易维护:如果在开发结束时,页面的样式或者程序的需求发生了变化,都可以很容易地实现改动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值