您的位置:首页 > 数据库 > Memcache

分布式缓存之 memcache 实现分布式缓存

2016-05-12 00:30 603 查看
最近想搞点分布式,但是不知道整点什么,来点简单的吧。

今天讲下memcache的分布式缓存

首先下载memcache的服务器端 百度下可以找到

然后执行安装和开启(关闭服务器)命令(还有其他的命令 可以百度下)

memecached -d instal

memcached -d start(stop)

然后我们用vs建个console项目

用nuget 下载memcache的c#调用驱动 当然有一些驱动,我选择的是EnyimMemcached github开源地址为:https://github.com/enyim/EnyimMemcached

首先配置app.config

配置如下(我这里是用了两台服务器做分布式,当其中一台服务器崩掉了,还可以获取到值,简而言之就是这样的,太官方的语言不会)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</configSections>
<enyim.com>
<memcached>
<servers>
<add address="127.0.0.1" port="11211" />
<add address="118.192.146.104" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
</memcached>
</enyim.com>
<memcached keyTransformer="Enyim.Caching.TigerHashTransformer, Enyim.Caching">
<servers>
<add address="127.0.0.1" port="11211" />
<add address="118.192.146.104" port="11211" />
</servers>
<socketPool minPoolSize="2" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
</memcached>
</configuration>


c#调用代码如下

class Program
{
static void Main(string[] args)
{
MemcachedClient mc = new MemcachedClient();

mc.Store(StoreMode.Set, "test", "hello world");

Console.WriteLine(mc.Get("test"));

Console.ReadLine();
}
}


这样的效果就是往这两台分布式服务器上写值,断掉其中一台服务器,可以仍然获取到值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: