本文目录导航:
MongoDB 或许 redis 可以代替 memcached 吗
mongodb和memcached不是一个领域内的物品。
mongodb是文档型的非相关型数据库,其好处在于查问性能比拟弱小,能存储海量数据。
mongodb和memcached不存在谁交流谁的疑问。
和memcached更为凑近的是redis。
它们都是内存型数据库,数据保留在内存中,经过tcp间接存取,好处是速度快,并发高,缺陷是数据类型有限,查问性能不强,普通用作缓存。
在团队的名目中,一开局用的是memcached,起初用redis代替。
相比memcached:1、redis具有耐久化机制,可以活期将内存中的数据耐久化到硬盘上。
2、redis具有binlog性能,可以将一切操作写入日志,当redis出现缺点,可依照binlog启动数据复原。
3、redis支持virtual memory,可以限定内存经常使用大小,当数据超越阈值,则经过相似LRU的算法把内存中的最不罕用数据保留到硬盘的页面文件中。
4、redis原生支持的数据类型更多,经常使用的构想空间更大。
5、前面有位好友所提及的分歧性哈希,用在redis的sharding中,普通是在负载十分高要求水平裁减时经常使用。
还没有用到这方面的性能,普通的名目,单机足够撑持并发了。
redis 3.0将推出cluster,性能愈增弱小。
6、redis更多好处,请移步官网网站查问。
memcached和redis的区别
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统启动过比拟:
1、Redis支持主机端的数据操作:Redis相比Memcached来说,领有更多的数据结构和并支持更丰盛的数据操作,理论在Memcached里,你要求将数据拿到客户端来启动相似的修正再set回去。
这大大参与了网络IO的次数和数据体积。
在Redis中,这些复杂的操作理论和普通的GET/SET一样高效。
所以,假设要求缓存能够支持更复杂的结构和操作,那么Redis会是不错的选用。
2、内存经常使用效率对比:经常使用繁难的key-value存储的话,Memcached的内存应用率更高,而假设Redis驳回hash结构来做key-value存储,由于其组合式的紧缩,其内存应用率会高于Memcached。
3、性能对比:由于Redis只经常使用单核,而Memcached可以经常使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。
而在100k以上的数据中,Memcached性能要高于Redis,只管Redis最近也在存储大数据的性能上启动提升,然而比起Memcached,还是稍有逊色。
详细为什么会出现上方的论断,以下为搜集到的资料:
1、数据类型支持不同
与Memcached仅支持繁难的key-value结构的数据记载不同,Redis支持的数据类型要丰盛得多。
最为罕用的数据类型关键由五种:String、Hash、List、Set和Sorted Set。
Redis外部经常使用一个redisObject对象来示意一切的key和value。
redisObject最关键的消息如图所示:
type代表一个value对象详细是何种数据类型,encoding是不同数据类型在redis外部的存储模式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或许是int,假设是int则代表实践redis外部是按数值型类存储和示意这个字符串的,当然前提是这个字符串自身可以用数值示意,比如:”123″ “456”这样的字符串。
只要关上了Redis的虚构内存性能,vm字段字段才会真正的调配内存,该性能自动是封锁形态的。
怎样检查memcached端口号?
检查memcached端口号步骤如下:
1、telnet ip 端口号连上MC;
2、输入stats检查MC形态;
3、应该重点关注的变量:
经常使用memcache应该关键关注如下变量,
cmd_get get恳求总次数
get_hits get恳求命中总次数
get_missesget恳求失败总次数
这三个量可以算出MC的命中率get_hits / cmd_get 或许 get_hits / (get_hits+get_misses) ,这个是经常使用MC服务最关键的一个量,命中率越高越好。