文章目录

  • 1、测试步骤
  • 2 单机性能测试
  • 2.1 机器信息
  • 2.2 缓存性能对比
  • 3 集群性能测试
  • 3.1 机器信息
  • 3.2 缓存性能对比
  • 4、测试结论
  • 技术交流


1、测试步骤

在单机和集群环境下,通过DAL中find不同数量id进行set和get缓存的操作,记录操作的时间。

表数据采用siteletter中的数据。

2 单机性能测试

2.1 机器信息

Another Redis检查缓存的过期时间 redis缓存测试_Redis

2.2 缓存性能对比

1、set性能: 采用脚本调取DAL不同数量的ids进行缓存,Redis和Memcached在不同数量id下的消耗时间如下:

Another Redis检查缓存的过期时间 redis缓存测试_memcached_02


2、get性能:采用脚本调用DAL命中缓存,Redis和Memcached在不同数量id下的消耗时间如下:

Another Redis检查缓存的过期时间 redis缓存测试_Redis_03

3 集群性能测试

3.1 机器信息

Another Redis检查缓存的过期时间 redis缓存测试_缓存_04

3.2 缓存性能对比

1、set性能: 采用脚本调取DAL不同数量的ids进行缓存,Redis和Memcached在不同数量id下的消耗时间如下:

Another Redis检查缓存的过期时间 redis缓存测试_memcached_05


2、get性能:采用脚本调用DAL命中缓存,Redis和Memcached在不同数量id下的消耗时间如下:

Another Redis检查缓存的过期时间 redis缓存测试_memcached_06

4、测试结论

1、无论在单机还是集群环境下,DAL的性能采用memcached缓存要比redis高,这和我们的实现方式有关系。

2、memcached的支持二进制和文本序列化采用 客户端自己实现的,而Redis是我们先把对象序列化再set到redis中,get的时候需要反序列化操作,这里存在性能损耗。

3、memcached支持一次性发多个key=>value到server进行存储,节省了网络的的时间;而redis集群模式下不支持mset和mget,导致我们必须采用循环get和set的方式去实现接口功能,性能损耗在RTT上。

4、Redis在相同的情况下qps和memcached相比也存在差距。

综上,DAL一次平均一个id采用redis缓存比memcached损耗大约1ms左右,能满足我们的需求,应该不会拖慢网站速度。