试验环境和IP
服务器:10.10.64.83
客户端:10.10.64.82
配置
2颗Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
服务器启动参数
./memcached -d -m 1024 -p 11211 -P /tmp/memcached.pid -c 1024 -f 1.25 -n 80 -t 16
客户端代码
单线程循环一万次,然后计算每次的时间
package com.home.phl;
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.utils.AddrUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Xmemcached(基于java nio)
* @author piaohailin
*
*/
public class Test {
private static Logger logger = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) throws Exception {
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("10.10.66.83:11211"));
MemcachedClient memcachedClient = builder.build();
Object o = memcachedClient.set("key",0,123);
memcachedClient.get("1");
logger.info("start");
for (int i = 0; i < 10000; i++) {
memcachedClient.get("key");
}
logger.info("end");
memcachedClient.shutdown();
}
}
启动
java -cp my.jar:lib/* com.home.phl.Test
输出
2014-01-12 01:26:31:913[WARN]: XMemcachedClient use Text protocol
2014-01-12 01:26:31:949[INFO]: Creating 32 reactors...
2014-01-12 01:26:31:993[WARN]: The Controller started at localhost/127.0.0.1:0 ...
2014-01-12 01:26:32:019[WARN]: Add a session: 10.10.66.83:11211
2014-01-12 01:26:32:029[INFO]: start
2014-01-12 01:26:34:433[INFO]: end
2014-01-12 01:26:34:437[INFO]: Controller has been stopped.
2014-01-12 01:26:34:437[WARN]: Remove a session: 10.10.66.83:11211
硬件设备缓存访问速度
摘自网络,仅供参考
结论
经过多次试验,同网段的服务器间访问,平均1次请求在0.2毫秒左右,性能优越。
- 大小: 38.6 KB
分享到:
相关推荐
它的核心机制是两阶段哈希,这一机制使得Memcached能够高效地处理大量的并发请求。 1. **两阶段哈希** Memcached的工作原理基于一个大型的哈希表,其中存储着键值对, value>。当客户端想要存储或检索数据时,首先...
Memcached是一款高性能的分布式内存对象缓存系统,主要用于减轻数据库负载,通过缓存数据和对象来加速Web应用程序。它由Danga Interactive开发,用于提升动态网站的访问速度。 ### 工作原理 Memcached通过使用两...
### Memcached Slab 分配器及其 LRU 机制详解 #### 第一章 前言 本文档将详细介绍 memcached 的...通过理解 memcached 的 slab 分配器和 LRU 算法的工作原理,可以更好地配置和优化 memcached 在特定环境下的性能。
Memcached是一种高性能、分布式内存对象缓存系统,其设计初衷是为了加速动态Web应用程序,通过减轻数据库负载来提高网站性能。Memcached在多个大型互联网公司如Facebook、Yahoo、Amazon、LiveJournal和Mixi等中得到...
- **conn_yields (64u)**:memcached 启动至今有多少次打开的连接因为内部请求数达到 `-R` 参数指定的限值,一个连接的操作主动放弃让给另一个连接。这部分理解起来比较复杂,具体可以参考 `-R` 参数的含义。 #####...
Memcached 是一个高性能的分布式内存对象缓存系统,它被广泛应用于Web应用中,用于缓解数据库负载,提高网站性能。Memcached 的核心功能是通过键值对(key-value)存储和检索数据,其中 `get` 命令是用于获取缓存...
- **一次运行详情**: 分析单次请求的具体性能指标,如CPU使用、内存消耗等。 - **函数调用图**: 通过可视化的方式展现函数调用链路,帮助识别性能瓶颈。 - **火焰图**: 提供更直观的性能分布视图,有助于理解程序...
12. **监控与调优**:使用性能分析工具(如Visual Studio的性能分析器)监控应用性能,找出瓶颈并针对性优化。 最后,持续测试和调整是提升性能的关键。在实际环境中模拟高并发和大数据量场景,通过A/B测试、压力...
- 可以考虑使用缓存(如Redis或Memcached)来存储帖子的总赞和踩数,减少对数据库的直接访问,提高系统性能。 8. **数据分析**: - 定期统计和分析投票数据,可以帮助了解用户喜好,优化内容推荐,也可以作为数据...
Memcached,作为一款广泛应用的高性能、分布式内存对象缓存系统,广泛应用于缓解数据库压力,提高Web应用性能。BeITMemcached是其在.NET平台上的C#实现,为开发者提供了便捷的接口来与Memcached服务器进行交互。本文...
原因是Redis是单线程的,当它处理一个请求时,其他的请求只能等着。通常请求都会很快处理完,但是当我们使用HGETALL的时候,必须遍历每个字段来获取数据,这期间消耗的CPU资源和字段数成正比。 二、解决方案 为了...
需要注意的是,这种方法的效率较低,不适合在大规模生产环境中使用,因为它涉及到多次网络请求和数据解析。为了提高性能和可扩展性,通常会采用其他策略,例如定期将所有key备份到一个中心存储,或者使用更高效的...
例如,设置`limiter.limit("10/minute")`将允许每个IP每分钟最多10次请求。 2. **动态限速**:可以根据实际情况动态调整限制策略。例如,如果检测到服务器负载过高,可以临时降低允许的请求频率。 3. **白名单与黑...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个例子中,我们基于Spring MVC、Maven、WebService和Memcached来实现一个功能完善的...
3. **负载均衡**:在高并发环境下,通过负载均衡技术分散请求,防止单点压力过大。 4. **异步处理**:对于耗时的分页操作,可以采用异步处理,让前端用户可以先看到页面,而数据在后台加载。 5. **分页参数处理**...
- JavaScript层面:通过JavaScript限制用户在一定时间内只能提交一次请求。 这样操作可以拦截掉大部分无用的重复请求,减少系统负载。 2. **站点层请求拦截与页面缓存** - 对于同一用户(UID),限制其访问...
单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在这个"**sso.zip_sso_sso java**"压缩包中,我们可以看到是针对Java项目实现的...
4. 缓存更新:在更新数据库时,可以通过Memcacheq队列逐步更新,避免一次性全部刷新导致的性能下降。 总结,Memcacheq通过结合Memcached的高速缓存特性与队列管理,为开发者提供了一种高性能、易扩展的数据处理解决...