缓存服务器的建立原理分析

 更新时间:2008年10月10日 09:51:09   作者:  
通常情况下我们运行程序的过程中会产生一些中间数据,这些中间数据需要在将来的某个时间读取。这就要求我们要把它存在一个提供高速存取的地方,最好的选择就是内存中。

好了。这样我们服务端的代码就算搞定了。
下面我们来发布服务供客户端调用
Code
1 public partial class SharpCatchedService : ServiceBase
2 {
3 public SharpCatchedService()
4 {
5 InitializeComponent();
6 }
7
8 protected override void OnStart(string[] args)
9 {
10 TcpChannel channel = new TcpChannel(ConfigHelper.Port);
11 ChannelServices.RegisterChannel(channel, false);
12 RemotingConfiguration.RegisterWellKnownServiceType(typeof(DataCatcher),
13 "SharpCatched", WellKnownObjectMode.Singleton);
14 }
15
16 protected override void OnStop()
17 {
18 }
19 }
这样客户端就可以通过这个接口来实现远程数据的存取
在客户端首先我们获取远程的对象
Code
public static ICarrier Carrier()
{
ICarrier carrier = (ICarrier)Activator.GetObject(typeof(ICarrier), "tcp://localhost:" + ConfigHelper.Port + "/SharpCatched");
return carrier;
}
接着我们包装一下
Code
1 public class SharpCatchedAPI
2 {
3 ICarrier icarrier;
4
5 public void Init()
6 {
7 icarrier = DoConnect.Carrier();
8 }
9
10 public void Set(string key, object value)
11 {
12 icarrier.Set(key, value);
13 }
14
15 public void Remove(string key)
16 {
17 icarrier.Remove(key);
18 }
19
20 public object Get(string key)
21 {
22 return icarrier.Get(key);
23 }
24
25 public bool Exits(string key)
26 {
27 return icarrier.Exits(key);
28 }
29 }
3后续
以上实现的是最基本的分布式缓存解决方案。其实我们可以把这个集合转化为其他集合对象,例如HashTable。在对象启动的时候开启一个守护线程,这个进程做得工作就是把到期的缓存对象追加到一个集合对象中,然后遍历该对象实现缓存对象的销毁。我们还可以把对象进行一次哈希让对像在多台缓存服务器上存储。好了今天就写到这里吧。
以上文字希望能起到抛砖引玉的作用,引起大家更深层次的思考。

相关文章

  • linux服务器磁盘满了的三种解决方案

    linux服务器磁盘满了的三种解决方案

    这篇文章主要给大家介绍了linux服务器磁盘满了的三种解决方案,文章通过图文结合的形式给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-04-04
  • Linux VNC安装ssh后ssh无法登录的解决方案

    Linux VNC安装ssh后ssh无法登录的解决方案

    VNC 服务器不能使用 SSH 22 端口登录的问题可能由多种原因引起,本文给大家介绍了Linux VNC安装ssh后ssh无法登录的解决方案,文中通过有详细解决方案,需要的朋友可以参考下
    2024-11-11
  • 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    这篇文章主要介绍了解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Apache Commons DbUtils工具包使用介绍

    Apache Commons DbUtils工具包使用介绍

    这篇文章主要介绍了Apache Commons DbUtils工具包使用介绍,本文介绍了DBUtils是什么东西、熟悉DBUtils的一些问题、API介绍等内容,需要的朋友可以参考下
    2015-03-03
  • 一文教你如何快速排查Windows和Linux系统是否被黑

    一文教你如何快速排查Windows和Linux系统是否被黑

    这篇文章主要为大家详细介绍了如何实现快速排查Windows和Linux系统是否被黑,文中通过图文进行了详细介绍,需要的小伙伴可以参考一下
    2023-08-08
  • SSH的ssh-keygen命令基本用法详解

    SSH的ssh-keygen命令基本用法详解

    ssh-keygen可用来生成ssh公钥认证所需的公钥和私钥文件,本文为大家详细介绍ssh-keygen的基本使用方法
    2018-10-10
  • Linux RabbitMQ 集群搭建流程图解

    Linux RabbitMQ 集群搭建流程图解

    在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么?MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递。RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言的
    2021-11-11
  • Linux下的fdisk命令用法详解

    Linux下的fdisk命令用法详解

    这篇文章主要介绍了Linux下的fdisk用法,大家都知道fdisk功能真的很强大,用它可以划分出最复杂的分区,本文重点给大家介绍Linux下的fdisk命令用法,感兴趣的朋友一起看看吧
    2018-05-05
  • Linux解决Unknown filesystem问题

    Linux解决Unknown filesystem问题

    当Linux系统出现「Unknown filesystem」错误,通常是GRUB引导问题,首先在GRUB命令行输入ls查看信息,记录返回的分区信息,使用PE系统,如「微PE」,并利用「显示隐藏分区」工具查看所有分区,在文件资源管理器中找到「boot」文件夹所在的分区
    2024-10-10
  • CentOS7 mini的安装和静态ip设置教程

    CentOS7 mini的安装和静态ip设置教程

    本篇文章主要介绍了CentOS7 mini的安装和静态ip设置教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论