【IT168 服务器学院】网站的数据保存在数据库中,为了加速页面的反应速度,在应用层作了缓存,将数据库中的内容生成静态的文件放在那里。这样既加快了网站的反应速度,同时也减轻了数据库的压力。
在网站上,对缓存通过以下几种方式对缓存进行刷新。
用户触发的信息:
有大量的数据,是和用户相关的,当用户对自己的数据进行修改时,除了写入数据库外,同时生成一份静态的缓存。这样用户在浏览的时候就直接从静态的缓存中返回数据。
及时性不高的数据:
有些数据及时性不高,这个就通过定时的刷新,将数据库中的数据缓存到网站上。
及时性很高的数据:
对于需要缓存数据的网站,最好的方式是数据更新和数据的获取通过一条总线来完成,这样数据的缓存就在这条总线上完成。但是目前大量的网站的设计初没有考虑到这一点,或者数据更新的条件不满足,无法达到这一点。如果数据的及时性要求很高,可以通过数据库数据更新调用外部程序的方式来完成数据的刷新。
我们这里暂时使用的是数据库直接调用一个URL来完成对数据的更新:
使用Oracle数据库的UTL.TCP的包:
declare
conn UTL_TCP.connection;
sendlength number;
begin
-- 打开连接
conn := UTL_TCP.open_connection (''IP'', 80-端口);
-- 写入请求
sendlength :=
UTL_TCP.write_line (conn
''GET URL '' || '' HTTP/1.0'' );
sendlength := UTL_TCP.write_line (conn);
-- 取得返回数据
begin
loop
DBMS_OUTPUT.put_line (UTL_TCP.get_line (conn, true));
end loop;
exception
when UTL_TCP.end_of_input -- 结束了
then
null;
end;
-- 关闭连接
UTL_TCP.close_connection (c);