标签:串行 数据恢复 redis 查询 故障 cache 内存分析 并发 命令
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 原生支持的数据类型更多,使用的想象空间更大。
标签:串行 数据恢复 redis 查询 故障 cache 内存分析 并发 命令
原文地址:http://www.cnblogs.com/wangjp/p/6015134.html