简述
它可以应对任意多个连接,使用非阻塞的网络IO。它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
一.安装
1.windows下
将附件中文件解压,到任意路径,双击即可直接启动
安装到服务中的方法:命令行切到该文件所在目录,运行命令 memcached.exe -d install
即可添加到服务中自动启动。
问题1: 如何解决并发问题
所有的被发送到memcached的单个命令是完全原子的。如果您针对同一份数据同时发送了一个set命令和一个get命令,它们不会影响对方。它们将被串行化、先后执行。即使在多线程模式,所有的命令都是原子的,除非程序有bug:)
命令序列不是原子的。如果您通过get命令获取了一个item,修改了它,然后想把它set回memcached,我们不保证这个item没有被其他进程(process,未必是操作系统中的进程)操作过。在并发的情况下,您也可能覆写了一个被其他进程set的item。
memcached 1.2.5以及更高版本,提供了gets和cas命令,它们可以解决上面的问题。如果您使用gets命令查询某个key的item,memcached会 给您返回该item当前值的唯一标识。如果您覆写了这个item并想把它写回到memcached中,您可以通过cas命令把那个唯一标识一起发送给 memcached。如果该item存放在memcached中的唯一标识与您提供的一致,您的写操作将会成功。如果另一个进程在这期间也修改了这个 item,那么该item存放在memcached中的唯一标识将会改变,您的写操作就会失败。
问题2:搭建分布式系统
参考网站: http://jiaxiaoyuan1204.blog.163.com/blog/static/65553152010520111644123/
Magent是一款开源的Memcached代理服务器软件,使用它可以搭建高可用性的集群应用的Memcached服务,其项目网址为:http://code.google.com/p/memagent/。
magent采用的是:Consistent Hashing原理,Consistent Hashing如下所示:首先求出memcached服务器(节点)的哈希值, 并将其配置到0~232的圆(continuum)上。 然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。 如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。
从上图的状态中添加一台memcached服务器。余数分布式算法由于保存键的服务器会发生巨大变化 而影响缓存的命中率,但Consistent Hashing中,只有在continuum上增加服务器的地点逆时针方向的第一台服务器上的键会受到影响。
利用magent实现对memecache的分布式管理,搭建一套memcache集群服务:
? 前端java对magent的访问跟对memcache访问相同,不需要做任何更改,对于插入的key,magent会把值散列到各个memcache服务上,只操作magent,不用关心后端处理;
启动参数示例:magent -p 12000 -s 10.11.15.31:12001 -s 10.11.15.32:12001 -s 10.11.15.33:12001,这里将三台机器都配置进来,如集集群增加了机器,只需要在启动参数里添加进来即可。所有前端配置都是相同的,任何一个前端只需访问本地端口的magent,这样的memcache集群对应用带来很大便利。
相关推荐
memcached缓存服务器,解压后即可使用,无需安装, 版本:1.2.1
memcached缓存服务器 ,64位安装包 ,内有简单的使用说明
搭建Memcached缓存服务器1
memcached缓存使用演示小项目,缓存服务器的搭建,增删改查缓存
缓存服务器memcached代码及使用文档,里面整理了使用的文章及J2EE项目使用demo。有问题可以联系:http://www.0817home.com/
memcached 分布式缓存服务器,windows版
memcache 用于缓存服务器,大大的提高了页面的加载速度,提高了网站的性能
windows系统下安装memcached缓存系统。资源包括memcached文件及安装方法,及修改端口号的方法,简单易操作。
提供缓存服务器封装好的dll,直接引用两个dll,用法见test.cs。然后在web.config里增加一个节点缓存服务器地址:端口号"/>。绝对方便。
C#使用memCached实现缓存 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。...
memcached介绍 memcached安装 memcached操作 内存存储机制 数据过期与删除机制 php操作memcached 多服务器集群算法 缓存无底洞效应 缓存雪崩 老数据被踢现象 结课作业
个人整理memcached缓存技术资料: 目录如下: 《Memcached内存分析、调优、集群.pptx》 《NET版分布式缓存Memcached测试实例.docx》 《Memcached管理及_.NET_开发.doc》 《memcached-win32-1.4.4-14.zip》 ...
memcached-library, 一个与Memcached缓存系统接口的CodeIgniter库 用于CodeIgniter的#Memcached 库##Description这个库是为了帮助一个基于CodeIgniter的项目与 1或者更多的Memcached服务器( ...
java中连接memcached缓存服务器
Memcached
其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对...
.net memcached缓存服务器安装与介绍 1、解压将对应memcached.exe 版本放入到文件夹内(F:\memcached.exe) 2、使用命令切换到memcached.exe目录下 cd F:\ 3、memcached.exe -d install 4、memcached.exe -d start ...
里边包含《magent-0.6.tar.gz》、《magent-0.5.tar.gz》、《magent-0.4.tar.gz》