那点所谓的分布式——memcache

这篇开始决定把系列文章的名字改掉,想了个好名字,反正不是玩单机版的就行了。

好了,这篇我们看看一种非持久化的缓存服务器memcache,说到缓存本能反映就是cache,session什么的,是的,可以说这

些都是基于.net进程的,通俗点也就做不了多机器的共享,典型的一个就是SSO。

一: 安装

memcahce像redis,mongodb一样都需要开启他们自己的服务端,我们下载Memcached_1.2.5.zip,然后放到C盘,修改文件

名为memcached。

1:install

install可以说是万能通用命令,首先我们转到memcached目录,然后 memcached.exe -d install 即可。

2:start

现在我们只要启动start即可,要注意的就是memecache默认的端口是11211,当然我也不想重新指定端口了。

3:stop,uninstall

这两个就不截图了,一个是停止,一个是卸载,反正都是万能通用命令。

二:驱动程序

memcache的服务器我们就已经开启好了,由于在公司最近一直都在用php,算了还是用C#驱动吧,谁让这是.net

社区呢,下载C#驱动,既然是缓存服务器,只要有基本的CURD,我想应该就差不多了。

 1 using System;
 2 using System.Collections.Generic;
 3
 4 namespace BeIT.MemCached
 5 {
 6     class Example
 7     {
 8         public static void Main(string[] args)
 9         {
10             //通过配置文件初始化memcache实例
11             MemcachedClient cache = MemcachedClient.GetInstance("MyConfigFileCache");
12
13             //编辑(可以模拟session操作,缓存20分钟)
14             cache.Set("name", "一线码农", DateTime.Now.AddMinutes(20));
15
16             //获取
17             var result = cache.Get("name");
18
19             Console.WriteLine("获取name的缓存数据为: " + result);
20
21             //删除
22             cache.Delete("name");
23
24             Console.WriteLine("\n成功删除cache中name的数据");
25
26             result = cache.Get("name");
27
28             Console.WriteLine("\n再次获取cache中name的数据为:" + (result ?? "null") + "\n");
29
30             //查看下memecahce的运行情况
31             foreach (KeyValuePair<string, Dictionary<string, string>> host in cache.Status())
32             {
33                 Console.Out.WriteLine("Host: " + host.Key);
34                 foreach (KeyValuePair<string, string> item in host.Value)
35                 {
36                     Console.Out.WriteLine("\t" + item.Key + ": " + item.Value);
37                 }
38                 Console.Out.WriteLine();
39             }
40
41             Console.Read();
42         }
43     }
44 }

我们再定义下配置文件,既然memcache可以用于分布式,那就避免不了将cache分摊到几台服务器上去,可以看到,下面的

配置也是非常简单的,当然分配的法则自然是memcache自身的算法决定的,最后别忘了在另一台服务器上开放一个端口就它

就行了。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="beitmemcached" type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <appSettings>
  </appSettings>
  <beitmemcached>
    <add key="MyConfigFileCache" value="127.0.0.1:11211" />
    <!--<add key="MyConfigFileCache" value="127.0.0.1:11211,127.0.0.1:8888" />-->
  </beitmemcached>
</configuration>

下面是打包程序:BeITMemcached ,也可以到codegoogle去下载

时间: 2024-08-12 09:00:35

那点所谓的分布式——memcache的相关文章

所谓的分布式——memcache

这篇开始决定把系列文章的名字改掉,想了个好名字,反正不是玩单机版的就行了. 好了,这篇我们看看一种非持久化的缓存服务器memcache,说到缓存本能反映就是cache,session什么的,是的,可以说这 些都是基于.net进程的,通俗点也就做不了多机器的共享,典型的一个就是SSO. 一: 安装 memcahce像redis,mongodb一样都需要开启他们自己的服务端,我们下载Memcached_1.2.5.zip,然后放到C盘,修改文件 名为memcached. 1:install inst

分布式memcache

php下操作memcache:1.连接memcache服务器$mem=new Memcache;$mem->addServer("192.168.0.1","11211"); 2.增$mem->set('name','user1'); 3.删$mem->delete('name'); 4.改$mem->set('age',200); 5.查echo $mem->get('age'); 6.查看状态$arr=$mem->getSta

memcache 分布式缓存

转载地址:http://www.cnblogs.com/phpstudy2015-6/p/6713164.html 作者:那一叶随风 1.memcached分布式简介 memcached虽然称为"分布式"缓存服务器,但服务器端并没有"分布式"功能.Memcache集群主机不能够相互通信传输数据,它的"分布式"是基于客户端的程序逻辑算法进一步实现的. 请看下面简图: 根据上图我们简述分析分布式memcached的set与get的过程 set过程:

夺命雷公狗---memcache NO:05 分布式的内存对象缓存系统的配置

要组建分布式缓存系统. (1)有多台memcache服务器 (2)分布式算法.从哪台存储的数据,就从哪台获取数据. 该算法是内置的,无需我们自己干预,内置到memcache的扩展里面的. 我们在使用多台memcache操作时,和操作一台是一样的. 建步骤: 准备至少两台memcache服务器. localhost:  11211 localhost:11210 存储方法如下所示: <?php $mem = new Memcache(); //链接分布式memcache服务器 //向连接池中添加一

Nginx+Memcache+一致性hash算法 实现页面分布式缓存(转)

网站响应速度优化包括集群架构中很多方面的瓶颈因素,这里所说的将页面静态化.实现分布式高速缓存就是其中的一个很好的解决方案... 1)先来看看Nginx负载均衡 Nginx负载均衡依赖自带的 ngx_http_upstream_module . ngx_http_memcached_module两大功能模块,其中一致性hash算法Nginx本身是不支持的,可以借助第三方模块: ngx_http_upstream_consistent_hash 或者直接使用淘宝的Tengine: http://te

九爷 带你了解 Memcache工作原理总结

Memcache工作原理总结 一 <!--[if !supportLists]-->1.  <!--[endif]-->分片原理 咱们废话话不多说了,直接看Memcache的原理. 首先memcache解决的最大的一个问题:<就是内存多次读取的内存碎片问题>.内存碎片分为内存内部碎片和内存外部碎片.一般是指在外部碎片中出现了不连续的细小内存片段,不能够被进程利用.因为不连续,不能组合成大而的连续空间,导致这部分空间很可惜的浪费了.内存碎片是因为在分配一个内存块后,使之空

大型网站优化-memcache技术

大型网站优化-memcache技术 memory+cache 内存缓存 memcache简介 memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的网站访问速度提升效果十分显著 .这是一套开放源代码软件,以BSD license授权发布.[摘取自百度百科] 官网:http://memcached.org/ 分布式:多台Memcache服务器来管理数据的架构. 缓存

在什么地方使用memcache

在PHP中使用memcache 面向过程的使用方式 面向对象的使用方式  这里是面向对象的方法 <?php $mem = new Memcache;        //这个类没有构造方法 $mem->connect("localhost", 11211);        //连接服务器,持久连接是pconnect //$mem->addServer('www.cyz.com',11221);        //可连接多个memcache服务器 //$mem->a

memcached分布式缓存

1.memcached分布式简介 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能.Memcache集群主机不能够相互通信传输数据,它的“分布式”是基于客户端的程序逻辑算法进一步实现的. 请看下面简图: 根据上图我们简述分析分布式memcached的set与get的过程 set过程: 1.首先通过应用程序set(‘key’,’value’) 2.进入程序,使用key通过逻辑算法得出这个key需要存储的节点位置 3.根据节点位置连接相应的memcached服务器,并发