redis剖析(一)redis性能

(1)Redis读/写每次数据大小性能
Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃。虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于Redis的set和get操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
(2)Redis读/写操作资源消耗、时间消耗
 一、写操作
  成功写入500万条记录,共耗时524秒,平均每秒写入数据9542笔。磁盘上的数据文件大小134M。
  可见,内存使用平稳上升,最后占用140M左右,主要用来缓存数据,对比数据文件的大小可以设想,在操作系统内存可用的情况下,内存的分配和数据文件的大小是大致相当的。内存占用会有临时的超过实际占用的几个点,而且会马上释放掉,CPU和磁盘IO都表现出周期性的上下波动,估计这些和Redis刷新数据到磁盘的实现机制有关,在高点的时候正好是数据写入磁盘的过程。总体来说占用资源很少,表现也很平稳。
  二、读操作
  成功读出500万条记录,共耗时184秒,平均每秒读出数据27174笔。

  读数据过程中没有发生磁盘IO。CPU有所消耗,Idle值稳定在77左右,等待CPU资源的进程一直是1个。内存表现平稳没有波动。
(3)Redis读/写操作处理次数
  下面是官方的bench-mark数据:
  测试完成了50个并发执行100000个请求。设置和获取的值是一个256字节字符串。Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。结果:每秒写入最多约110000次,读取每秒最多约81000次。
  (4)总结
  对于实时分析系统,现在你就可以用上Redis,Redis可以作为缓存,让用户感到更轻松,让你的系统变得不再复杂、更快地处理分析数据,使用Redis给你的框架带来新的东西,来完成那些从前认为不可能做到/很难做到的,或是成本太高的任务。但不要频繁使用Redis,和注意Redis的限制条件。

你可能感兴趣的:(redis)