缓存服务器的建立原理分析第1/2页_Linux

 1概述
通常情况下我们运行程序的过程中会产生一些中间数据,这些中间数据需要在将来的某个时间读取。这就要求我们要把它存在一个提供高速存取的地方,最好的选择就是内存中。基于这个以及多个原因需要我们把这部分存储到其他机器上,这样就产生了分布式缓存的问题。
实际上分布式缓存根本上就是提供一个附加内存让另一台机器帮忙存储和查找数据。
2实现方法
首先建立一个集合对象,该集合对象应保证线程安全。代码如下所示
Code
1 public static class MemObject
2 {
3 static MemObject()
4 {
5 MemObjl = new Dictionary<string, object>();
6 }
7
8 public static Dictionary<string, object> Get()
9 {
10 if (MemObjl == null)
11 MemObjl = new Dictionary<string, object>();
12 return MemObjl;
13 }
14
15 public static void Add(string key, object obj)
16 {
17 Dictionary<string, object> obg = Get();
18 if (!obg.ContainsKey(key))
19 obg.Add(key, obj);
20 }
21
22 public static void Remove(string key)
23 {
24 Get().Remove(key);
25 }
26
27 public static int Count()
28 {
29 return Get().Count;
30 }
31
32 public static object Get(string key)
33 {
34 Dictionary<string, object> obg = Get();
35 if (obg.ContainsKey(key))
36 return obg[key];
37 return null;
38 }
39
40 public static bool Exits(string key)
41 {
42 return Get().ContainsKey(key);
43 }
44
45 private static Dictionary<string, object> MemObjl;
46 }
接着我们把它包装起来可以通过远程调用,代码如下
Code
1 public class DataCatcher : MarshalByRefObject, ICarrier.ICarrier
2 {
3 public void Set(string key, object value)
4 {
5 //if (Exits(key))
6 // Remove(key);
7 //MemObjl.Add(key, value);
8 MemObject.Add(key, value);
9 }
10
11 public bool Exits(string key)
12 {
13 return MemObject.Exits(key);
14 }
15
16 public void Remove(string key)
17 {
18 MemObject.Remove(key);
19 }
20
21 public int Count()
22 {
23 return MemObject.Count();
24 }
25
26 public object Get(string key)
27 {
28 return MemObject.Get(key);
29 }
30 }
为了避免我们的业务逻辑泄露我们向客户端提供接口以便调用
Code
1 public interface ICarrier
2 {
3
4 void Remove(string key);
5
6 bool Exits(string key);
7
8 void Set(string key,object value);
9
10 object Get(string key);
11
12 int Count();
13 }

当前1/2页 12下一页阅读全文

时间: 2024-07-31 07:42:36

缓存服务器的建立原理分析第1/2页_Linux的相关文章

利用客户端缓存对网站进行优化的原理分析第1/2页_php技巧

很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com+/Enterprise Libiary Caching/Windows服务,静态文件等方式的服务器端缓存和 HTTP Compression技术,但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快,但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处.因为她可以对站点中访问最频繁的页进行缓存

如何降低服务器采购成本 原理分析_IT 业界

而IT建设过程中的服务器采购自然也成为了众多中小企业削减成本的重点之一.如何增强免疫力,提高生存能力,使用户真正通过IT系统来帮助其实现业务的增长,才是经济危机下更需要理性思考的问题. 在以往企业信息化建设过程当中,认为IT设备只是业务的辅助性设施.近些年来,企业已经逐步走出了这种错误的思维模式,对于企业来说,信息化已经成为了一个非常重要的课题,这也是近年来广大企业变化最大的一个层面.服务器历来都是信息化建设的基础,其整体性能在很大程度上影响到了整个企业信息化的进程,同时也影响着整个企业的运作,

跨站式脚本(Cross-SiteScripting)XSS攻击原理分析第1/4页_安全相关

使用过ASP的同学一定见过这样的代码:  Hello, 复制代码 代码如下: <% Response.Write(Request.Querystring("name")) %> 假如我传入的name的值为:  [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 这样就可以直接盗取用户的cookie.所以我就可以发送一条链接地址让别人去点: 复制代码 代码如下: http://www.xxx.com/reg.asp?name=<script>x=docum

Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化第1/2页_Linux

对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限.用户.IP地址.内存.过程.文件.应用程序.系统函数库以及配置文件.VPS服务器最重要的指标就是内存大小,多个VPS服务器可以共享一颗CPU,但不能共享同一块内存.内存越大,价格越贵. 下面,以我的博客所在的VPS为例,介绍在128M内存下对 Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 的优化. 至于 Nginx

浏览器HTTP协议缓存原理分析详解

浏览器HTTP缓存原理分析 浏览器缓存原理 文字版描述 ①浏览器第一次访问服务器资源 /index.html 在浏览器中没有缓存文件,直接向服务器发送请求. 服务器返回 200 OK,实体中返回 index.html文件内容,并设置一个缓存过期时间,一个文件修改时间,一个根据index.html内容计算出来的实体标记Entity Tag,简称Etag. 浏览器将/index.html路径的请求缓存到本地. ②浏览器第二次访问服务器资源 /index.html 由于本地已经有了此路径下的缓存文件,

一起谈.NET技术,服务器日志法网站分析的原理及优缺点

     [前言] 应朋友们的要求,我还是写一篇关于服务器日志法进行网站分析的原理以及它的优缺点是什么.请朋友们注意,网站服务器日志法并不容易进行,初学者,以及在绝大多数情况下,进行以用户行为分析为核心的网站分析,用不到服务器日志法.不过,作为网站分析历史不可分割的一部分以及重要的基础篇章,服务器日志法仍然值得一书.下面的这篇文章也是我要撰写的书中截取的内容(我要快马加鞭快快写了,已经辜负了太多朋友的重托,抱歉抱歉!).      [正文] 网站分析收集数据的方式其实有五.六种之多,我们最常见的

服务器日志法网站分析的原理及优缺点

[前言] 应朋友们的要求,我还是写一篇关于服务器日志法进行网站分析的原理以及它的优缺点是什么.请朋友们注意,网站服务器日志法并不容易进行,初学者,以及在绝大多数情况下,进行以用户行为分析为核心的网站分析,用不到服务器日志法.不过,作为网站分析历史不可分割的一部分以及重要的基础篇章,服务器日志法仍然值得一书.下面的这篇文章也是我要撰写的书中截取的内容(我要快马加鞭快快写了,已经辜负了太多朋友的重托,抱歉抱歉!). [正文] 网站分析收集数据的方式其实有五.六种之多,我们最常见的有三种,分别是:服务

在FreeBSD 6.0下建立高速DNS缓存服务器

首先介绍在freebsd上如何建立高速dns缓存服务器,引用freebs d中文手册中的话: 缓存域名服务器是对任何域都不提供权威解析的域名服务器. 它自己简单地完成查询, 并记住这些查询以备后续使用. 要建立这样的服务器, 只需像平时一样配置一个域名服务器, 而不配置域就可以了 安装如下: 所使用的软件是BIND,安装完freebsd6.0后BIND是自动安装好的,版本为BIND9,路径一般为/etc/namedb.freebsd5.2及更早版本的用户可以通过到ISC网站上下载BIND9.3.

FreeBSD 6.0下建立高速DNS缓存服务器

首先介绍在freebsd上如何建立高速dns缓存服务器,引用freebs d中文手册中的话: 缓存域名服务器是对任何域都不提供权威解析的域名服务器. 它自己简单地完成查询, 并记住这些查询以备后续使用. 要建立这样的服务器, 只需像平时一样配置一个域名服务器, 而不配置域就可以了 安装如下: 所使用的软件是BIND,安装完freebsd6.0后BIND是自动安装好的,版本为BIND9,路径一般为/etc/namedb.freebsd5.2及更早版本的用户可以通过到ISC网站上下载BIND9.3.