服务器 频道

数据库通知网站更新静态缓存

  【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);

   

0
相关文章