简述
它可以应对任意多个连接,使用非阻塞的网络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缓存服务器需要使用rpm命令安装libevent和memcached软件包。 * 查看Memcached缓存服务器是否安装成功需要使用rpm命令查看rpm软件包列表。 * 查看Memcached缓存服务器的安装目录需要使用rpm命令查看...
**Memcached缓存服务器详解** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个“memcached缓存服务器”压缩包提供的版本是1.2.1,适用于...
memcached缓存服务器 ,64位安装包 ,内有简单的使用说明
项目实战:搭建Memcached缓存服务器 在实际项目中,首先需要启动Memcached服务,然后在应用程序中配置连接信息。例如,在Web应用中,可以在用户访问页面时,先尝试从缓存中获取数据,若未命中再从数据库查询并将...
**缓存服务器Memcached详解** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库负载,提高页面加载速度,从而显著提升网站的整体性能。Memcached的设计理念是简单而高效,...
这个“php memcached缓存操作类”旨在简化开发者对Memcached的使用,提供一个方便、高效的接口来处理数据缓存。本文将详细讲解PHP与Memcached结合的原理、使用方法以及该操作类的特性。 1. PHP与Memcached的连接: ...
**缓存服务器Memcached简介** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的压力,提高数据访问速度。Memcached基于一个简单的键值对存储模型,允许应用程序将数据...
【Windows上的安装与使用】 1. **Memcached版本**: - 服务端:这里以`memcached-1.2.1-win32.zip`为例。 - 客户端:通常需要一个Java客户端库,例如`memcached-2.4.2.jar`,以便于在Java应用中与Memcached交互。...
Memcached 缓存安装配置 Memcached 是一个自由开源的高速缓存系统,可以用来加速动态Web应用程序中的数据访问速度。本文将指导您如何安装和配置 Memcached,并介绍 Memcached 的基本概念和参数。 一、安装 ...
PHP Memcached扩展是PHP与Memcached缓存服务器交互的一个接口,它允许开发者将数据存储在内存中,以便快速访问。韩顺平老师的这份资料深入浅出地讲解了PHP Memcached的原理、安装配置、使用方法以及最佳实践。 一、...
**memcached 分布式缓存服务器** `memcached` 是一款高效、轻量级的分布式内存对象缓存系统,主要用于缓解数据库的负载压力,通过在内存中存储数据,提高网络应用的数据读取速度。它广泛应用于网站开发、API服务、...
标题 "使用Spring AOP对Web应用数据进行Memcached缓存" 涉及到的关键技术是Spring AOP(面向切面编程)和Memcached,这是一种常见的高性能、分布式内存对象缓存系统。在Web应用程序中,使用缓存可以显著提高数据访问...
**标题详解:**“Windows系统安装memcached缓存系统” Memcached是一款高性能、分布式内存对象缓存系统,常用于缓解数据库负载,提升Web应用性能。标题指出,本教程主要针对在Windows操作系统上安装和配置memcached...
总的来说,"memcached-win32-1.4.4-54-g136cb6e.zip"是一个方便在Windows上部署的Memcached服务器端程序,它能帮助开发者快速构建高性能的缓存系统,提升Web应用的响应速度和整体性能。在实际使用中,理解其核心概念...
**PHP与Memcached缓存** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高网站的响应速度。PHP与Memcached的结合,使得开发者能够轻松地在PHP应用中实现数据...
.NET C# Memcached 缓存获取所有缓存键的方法步骤 ...本文详细介绍了如何使用 .NET C# 语言实现 Memcached 缓存获取所有缓存键的方法步骤,该方法可以帮助开发者快速实现 Memcached 缓存机制,并提高系统性能。
**memcached缓存处理** **一、什么是memcached** `memcached`是一个高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载。它通过将数据存储在内存中来加速读取操作,而不是每次请求都去查询数据库。...
当我们谈论"Magent Memcached缓存代理服务器"时,这意味着我们将在Magento环境中集成和配置Memcached作为缓存解决方案。 首先,让我们详细了解Memcached。Memcached是一种基于内存的键值存储,它通过将经常访问的...
此外,memcached支持多服务器环境下的分布式缓存,这意味着数据可以在多台服务器间共享,进一步提升系统的可扩展性。 ### 二、PHP内存缓存技术memcached安装 在PHP环境中安装memcached,首先需要从官方下载...