分布式缓存BeIT Memcached简介

分布式缓存BeIT Memcached简介

或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。
下面稍微介绍一下beitmemcached对于.net的支持,官方参考
http://code.google.com/p/beitmemcached/

一个完整的操作步骤:
1、点击上面页面的downloads,把Memcached_1.2.5.zip 和BeITMemcached_source_2008_05_31.zip两个压缩包下在下来。
2、解压Memcached_1.2.5.zip ,它是memcached的服务器端。
3、把Memcached_1.2.5复制到你指定的做为缓存服务器的电脑上,比如叫做192.168.0.1。
4、cmd下运行类似命令 ‘d:\memcached\memcached.exe -d install‘ 安装服务器端,这时候它应该会出现在windows服务中
5、cmd下运行类似命令 ‘d:\memcached\memcached.exe -d start‘启动服务,看服务器进程中是否有memcached进程。
6、确认服务器端口11211是否开放(防火墙设置中),否则其他机器无法访问
7、服务器端这时已经安装完毕、在其他机器上测试一下,cmd输入telnet 192.168.0.1 11211看能否登录。

8、解压BeITMemcached_source_2008_05_31.zip,它是.net 2.0开发的客户端,里面是全部源代码和一个调用示例。
9、用对应版本的vss打开项目,如果感兴趣就慢慢研究代码,不感兴趣就选择生成类库,编译一个BeITMemcached.dll出来。
10、新建一个控制台程序,引用BeITMemcached.dll,输入类似代码测试

using System;using BeIT.MemCached;namespace ConsoleApplication3{    class Program    {        static void Main(string[] args)        {            MemcachedClient.Setup("TestCache", new string[] { "192.168.0.1" });            MemcachedClient cache = MemcachedClient.GetInstance("TestCache");            cache.SendReceieveTimeout = 5000;            cache.MinPoolSize = 1;            cache.MaxPoolSize = 5;            cache.Set("jinjazz", "剪刀");            object obj = cache.Get("jinjazz");            Console.WriteLine(obj);            Console.Read();        }    }}

一个分布式缓存的例子就这么简单,和操作hashtable基本上一样容易。

11、查看缓存运行状态,这个你需要熟悉一些memcached的基本命令
先在你机器上输入telnet 192.168.0.1 11211,进入telnet
摸黑输入stats,会出来如下结果,可能对你有用的我后面加了注释
STAT pid 2928
STAT uptime 139279
STAT time 1216258406
STAT version 1.2.5
STAT pointer_size 32
STAT curr_items 4
STAT total_items 6
STAT bytes 1052947
STAT curr_connections 2
STAT total_connections 10
STAT connection_structures 4
STAT cmd_get 13  //读取13次
STAT cmd_set 6  //设置6次
STAT get_hits 11 //11次命中
STAT get_misses 2 //2次失败
STAT evictions 0
STAT bytes_read 1053321
STAT bytes_written 6279461
STAT limit_maxbytes 67108864
STAT threads 1
END
 
12、结束。

时间: 2024-10-17 07:53:56

分布式缓存BeIT Memcached简介的相关文章

分布式缓存系统Memcached简介与实践

缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活.此时Memcached或许是你想要的. Memcached是什么?Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度. Memcached能缓存什么?通过在内存里维护一个统一的巨大的hash表,Memc

分布式缓存(MemCached)

最近在为找工作做准备,就看了好多.NET基础知识,发现很多关于页面之间传值的方式,其中就有Session,但也发现Session在实际使用过程中有很多问题.最典型也最重要大的BUG就是如果IIS中同时有很多进程发生时,内存不够用那么有垃圾回收机制,就会导致Session的丢失.解决方法有:可以用Sate Server或SQL Server数据库的方式存储Session,可是这两种方式都有个缺点就是处理速度慢,无法捕获END事件.因此,我便想那么还有什么方式可以解决这一问题呢? 结果就是使用分布式

分布式缓存系统 Memcached 整体架构

分布式缓存系统 Memcached整体架构 Memcached经验分享[架构方向] Memcached 及 Redis 架构分析和比较

缓存之Memcached简介

前言 前篇简单较少了EnCache,本篇将介绍Memcached,之后还会将两者进行对比. 正题 一.简介 Memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性. Memcached为key->value非关系型数据库,key为一般字串,值唯一.value除了php中的资源不能存,其它的数据都能存储(字符串.数值.数组.对象.布尔值.null.二进制<图片.视频>) 二.提速方法: 1.传

分布式缓存技术memcached学习系列(四)—— 一致性hash算法原理

文章主目录 分布式一致性hash算法简介 分布式一致性hash算法使用背景 环形hash空间 映射key到环形hash空间 映射server节点到hash空间 映射key到server节点 添加server节点 删除server节点 虚拟节点的引入 节点变化数据分流的问题 一致性hash算法与取模算法的比较 参考文档 回到顶部 分布式一致性hash算法简介 当你看到“分布式一致性hash算法”这个词时,第一时间可能会问,什么是分布式,什么是一致性,hash又是什么.在分析分布式一致性hash算法

分布式缓存系统Memcached在Asp.net下的应用

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 站下的session性能并不高,所以造成人们一种印象,大型WEB项目使用Java的错觉,致使很多人吐槽微软不给力,其实这好比拉不出怪地球引力,本

分布式缓存系统Memcached

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提高访问速度. 通过在内存中维护一个巨大的统一的hash表,Memcached能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等. Memcached使用了libevent(如果可以的话,在linux下使用epoll) 来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不

分布式缓存系统 Memcached 基本配置与命令

为了方便测试,给出一个C客户端libmemcached链接:https://launchpad.net/libmemcached/ 以及memcacheclient-2.0 : http://code.jellycan.com/files/memcacheclient-2.0.zip(已生成 sln,在windows下直接用VS打开,编译成功) 在Memcached启动时,有很多配置参数可以选择,以下参数对应memcached1.4.15,现给出这些参数的具体含义: "a:" //un

分布式缓存系统 Memcached 数据存储slab与hashtable

缓存数据以item为基本单元,以双链表形式存放在对应级别大小的slabclass结构的chunk中.同时该item还存放在链式hashtable中bucket中,用于提供快速查找的索引. 首先是理解缓存的基本数据单元item结构: typedef struct _stritem {    struct _stritem *next;    //在slab中的双链表后向指针    struct _stritem *prev;    //在slab中的双向链表的前向指针    struct _str