zoukankan      html  css  js  c++  java
  • Memcached 和 Redis

    Redis 相对 Memcached 来说功能和特性上的优势已经很明显了。而对于性能,Redis 作者的说法是平均到单个核上的性能,在单条数据不大的情况下 Redis 更好。为什么这样说呢,理由就是 Redis 是单线程运行的。

    因为是单线程运行,所以和 Memcached 的多线程相比,整体性能肯定会偏低。

    因为是单线程运行,所以 IO 是串行化的,网络 IO 和内存 IO,因此当单条数据太大时,由于需要等待一个命令的所有 IO 完成才能进行后续的命令,所以性能会受影响。

    而就内存使用上来说,目前 Redis 结合了 tcmalloc 和 jemalloc 两个内存分析器,基本上和 Memcached 不相伯仲。如果是简单且有规律的 key value 存储,那么用 Redis 的 hash 结构来做,内存使用上会惊人的变小,优势是很明显的。

    和 Memcached 更为接近的是 Redis。它们都是内存型数据库,数据保存到内存中,通过 tcp 直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。

    相比 Memcached:

    1、Redis 具有持久化机制,可以定期将内存中的数据持久化到硬盘上。

    2、Redis 具备 binlog 功能,可以将所有操作写入日志,当 Redis 出现故障,可依照 binlog 进行数据恢复。

    3、Redis 支持 virtual memory,可以限定内存使用大小,当数据超过阀值,则通过类似 LRU 的算法把内存中的最不常用的数据保存到硬盘的页面文件中。

    4、Redis 原生支持的数据类型更多,使用的想象空间更大。

  • 相关阅读:
    蓝桥杯算法训练 区间k大数查询
    【模板】快读
    [ACM] hdu 2544 最短路(dijkstra算法)
    [ACM] hdu 3791 二叉搜索树
    [ACM] hdu 2141 Can you find it? (二分查找)
    [ACM] hdu 2025查找最大元素(水题)
    [ACM] hdu 1232 畅通工程(并查集)
    [ACM] hdu 1022 Train Problem I(栈的使用)
    [ACM] hdu 2857 Mirror and Light (对称点+两条直线的交点)
    [ACM] hdu 爆头(点到直线距离)
  • 原文地址:https://www.cnblogs.com/wangjp/p/6015134.html
Copyright © 2011-2022 走看看