述
本文对比测试constcache和memcached。评测程序参考memslap实现。
评测程序使用介绍
命令参数:
bench.php -ttype -cconcurrency -mmethod -sserver -nnumber -llength -aamend -i
-r
参数说明:
type。评测类型,目前支持constcache、memcached。
concurrency。并发数量,默认值10,上限999。
method。评测哪种操作,目前支持get、set。
server。对memcached来说要指定连接参数,格式为ip:port。
number。操作数量,默认10000,上限1000000。
length。记录长度,默认1000。
amend。等待修正值。为保证并发同步执行,进程需要等待到同一时刻执行。amend能
调整等待时间,设得大就等待时间长。默认3,上限20。
i。在测试get时,要加上i参数用来加载数据。
r。在测试memcached时,加上r参数可以屏蔽数据压缩功能。默认开启。
测试环境说明:
基于内存限制,操作数据*并发数量设置上限1000000。测试时请设置memcached和
constcache的内存参数超过2G。
由于constcache是本机操作,因此memcached也应该针对本机。
constcache有hashpower参数可以设置,默认16。下文中constcache括号里的值就是指
这个参数。
测试程序说明:
key长度全部是100,key名全部不一样。
value长度随参数设置,同一次测试中所有key的value都一样。
命令举例:
# 评测memcached,连接本机的12323端口,写入10000条,并发10
bench.php -tmemcached -s127.0.0.1:12321 -n10000 -c10
# 评测constcache,读取20000条,每条长度2048,并发3,读取前写加载数据
bench.php -tconstcache -mget -n20000 -c3 -l2048 -i
评测结论
从下面的评测数据,分析如下:
constcache(20)与无压缩的memcached相比,写入性能相差不大,占用内存略小。
constcache(20)与有压缩的memcached相比,在高并发情况下写入性能高出30%以上。
constcache(20)与constcache(16)相比,在高并发情况下写入性能高出30%以上,占用内
存没有明显增加。
constcache与memcached相比,读取性能有几十倍提高,并发越多性能越高。
constcache(16)在高并发情况下,读取性能急剧下降。
从而得出结论:
constcache在高并发情况下,与memcached相比,写入性能提升30%以上,读取性能提
升80倍以上。
constcache的hashpower参数默认应设为20。
因测试程序忽略了连接因素,实际应用环境下性能更高。
评测数据
数据长度1KB,次数10000,写入性能对比
bench.php -tconstcache -n10000 -l1024
bench.php -tmemcached -s127.0.0.1:12321 -n10000 -l1024
bench.php -tmemcached -s127.0.0.1:12321 -n10000 -l1024 -r
并发
constcache(16)
constcache(20)
memcached(有压缩)
memcached(无压缩)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
1
0.034
11.6
0.036
19.1
0.781
3.36
0.281
16.7
2
0.446
22.7
0.784
30.2
1.602
5.42
1.037
31
5
3.107
56
2.969
63.5
4.288
11.6
3.792
74.1
10
13.281
111.51
13.372
119
12.2
21.4
12.735
147.3
20
58.049
222.52
53.299
230
57.759
40.9
55.931
292.9
50
412.924
555.54
343.852
563
497.539
99.6
324.268
729.2
100
2370.85
1110.6
1463.31
1118
2457.78
198.5
1506.05
1457.5
注:因value都一样,有压缩memcached的压缩效果很好,导致占用内存很少。
数据长度1KB,次数10000,读取性能对比
bench.php -tconstcache -n10000 -l1024 -mget -i
bench.php -tmemcached -s127.0.0.1:12321 -n10000 -l1024 -mget -i
bench.php -tmemcached -s127.0.0.1:12321 -n10000 -l1024 -mget -i -r
并发
constcache(16)
constcache(20)
memcached(有压缩)
memcached(无压缩)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
1
0.022
0.025
0.582
0.593
2
0.056
0.059
1.537
1.022
5
0.189
0.183
2.73
2.909
10
0.71
0.681
8.366
7.94
20
1.623
1.184
26.211
35.711
50
7.066
2.98
232.114
243.525
100
102.543
9.265
1115.04
1098.32
数据长度1KB,次数1000000,读取性能对比
bench.php -tconstcache -n1000000 -l1024 -mget -i
bench.php -tmemcached -s127.0.0.1:12321 -n1000000 -l1024 -mget -i
bench.php -tmemcached -s127.0.0.1:12321 -n1000000 -l1024 -mget -i -r
并发
constcache(16)
constcache(20)
memcached(有压缩)
memcached(无压缩)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
耗时(s)
内存(M)
1
5.196
2.396
47.3
44.573
相关推荐
在SSM框架中引入Memcached并基于Spring的Cache注解进行整合,可以实现高效、分布式的数据缓存,提升系统性能。下面将详细阐述这一过程中的关键知识点。 1. **Memcached介绍**: Memcached是一款高性能、分布式的...
本文将深入探讨Redis与Memcached的选型对比,分析它们的性能测试结果,并探讨各自的优缺点。 Redis与Memcached都是基于NoSQL的内存数据结构存储系统,用于加速应用程序,支持亚毫秒级延迟,并且都是开源项目,用...
Memcached、Redis和MongoDB都是流行的数据库解决方案,它们各自具有不同的特点和应用场景。以下是这三种技术之间的对比分析。 性能: 这三种数据库都具备高TPS(每秒事务处理数),意味着它们都能够处理大量的数据...
1. **Windows环境**:在Windows上安装Memcached相对简单,通常可以下载预编译的二进制版本,解压后运行服务程序,设置监听端口和内存大小等参数。 2. **Linux环境**:在Linux中,可以通过包管理器(如apt-get或yum...
在本项目中,我们主要探讨的是如何将Spring Cache与memcached进行整合,以提升应用程序的性能和效率。Spring Cache是Spring框架的一部分,它提供了一种抽象的缓存管理机制,可以方便地集成到各种缓存解决方案中,如...
解决目前memcached不支持hibernate4的缺陷,hibernate配置<property name="hibernate.cache.region.factory_class">com.googlecode.hibernate.memcached.MemcachedRegionFactory</property>
本文将深入探讨"batcache"和"memcached"这两个工具,以及它们如何在Linux环境下为WordPress提供加速服务。 首先,batcache是一款专为WordPress设计的页面缓存系统。它通过缓存服务器生成的动态页面,减少对数据库的...
5. **测试和优化**:通过测试确保缓存工作正常,监控内存使用情况,根据需要调整配置。 总的来说,Memcached 64位 window为Windows环境提供了强大的内存缓存解决方案,可以有效提升依赖数据库的应用性能。正确配置...
这里我们将深入探讨“memcached测试的工具类”,以及如何利用这样的工具类来优化Memcached的使用。 Memcached测试工具类通常包含了各种方法,用于模拟不同的操作场景,例如设置(key-value)对、获取存储的数据、删除...
标题"ZendFramework 1 cache for Redis,Memcached"表明这是一个关于使用 Zend Framework 1 框架来实现缓存功能的教程,重点在于集成和使用 Redis 和 Memcached 这两种流行的数据缓存系统。Zend Framework 是一个广泛...
### Memcached与Redis对比分析 #### 一、概述 在现代软件开发中,为了提高系统的响应速度和降低数据库的压力,缓存技术变得越来越重要。Memcached和Redis是两种广泛使用的缓存解决方案,它们各有特点,在不同的...
在构建高性能的Web服务时,通常会...Nginx作为前端处理静态资源和反向代理,Memcached作为缓存层提高数据访问速度,而Tomcat则负责处理动态请求和应用逻辑。正确配置和管理jar包,能够确保系统的稳定运行和性能优化。
在Windows环境下安装和测试Memcached,我们可以遵循以下步骤。 ### 安装步骤 1. **下载Memcached**: 首先,你需要从官方网站(https://memcached.org/downloads)或第三方源获取适用于Windows的Memcached二进制版本...
Memcache环境测试: 运行下面的php文件,如果有输出This is a test cache!,就表示环境搭建成功。开始领略Memcache的魅力把! $mem = new Memcache(); $mem->addserver("127.0.0.1", 11211); $mem->set(...
标题中的“Windows下memcached+memcached.dll 5.3.8”指的是在Windows操作系统上安装和使用Memcached服务的场景,其中`memcached.dll 5.3.8`是Memcached服务器的一个特定版本的动态链接库文件。Memcached是一款高...
本篇文章将详细讲解如何安装和配置memcached,以及与之相关的libevent和magent。 首先,我们需要了解libevent库。libevent是一个事件通知库,它允许程序处理多个网络连接,并有效地处理来自不同源的事件。在安装...
本压缩包文件“memcacheddotnet”提供的就是C#环境下连接和操作Memcached的客户端源码,以及相关的测试示例,这对于理解和应用C#与Memcached的集成至关重要。 首先,我们需要了解C#中的Memcached客户端是如何工作的...