¥
Redis和memcache的区别是:
理解方法有多种:
可以这样理解他们的区别:memcache就是一张hashtable,用前缀区分不同的表名。
但是redis支持多种数据结构,hashtable只是一种,还支持字符串(字符串添加,合并),还支持链表(由于是双链表,可以既当做队列也可以当做栈,),支持sorted list,set等。。。
redis每种数据类型的表名可以看做是键。
¥
Mongodb 和hbase和mysql的区别:
Hbase一般是一种大表,所以是按列存储的,相同的列存储在相邻位置。并且底层是hdfs实现分布式,冗余。
Mongodb不是基于hdfs,不是以hdfs实现冗余,而是另一种方式实现冗余(可以增加主从复制,类似于mysql)。按文档存储的意思跟mysql 的按行存储一样,都是同一行的内容存储在相同位置(连续位置可能好理解些。)
从存储方式上来讲,mongodb更像mysql,都能建立索引,但是跟mysql 的不同之处是mongodb不支持范式。
文档类比于mysql的行。
Mongodb的分片对应用程序不可见,在mongodb中配置就可以。但是mysql则相反,在程序中要进行处理。
测试场景下MySQL采用的是单条Insert的方式,所以可以看出QPS数和TPS数是基本一致的,也就是每个Insert操作,都对应有一次I/O写入操作。可以从MySQL数据库本身做一些优化,这次测试没有覆盖到这种场景。
Mongodb内部采用合并操作的方式,采用数据先存放到内存中,然后再Flush到磁盘上的方式。所以,从测试数据可以看出,TPS曲线坡度非常大:有时候TPS是零,这时候是还放到内存中,还没有Flush到磁盘上;有时候TPS非常高,同时这时候CPU也非常高,几乎是100%
数据库nosql 笔记
最新推荐文章于 2023-05-05 14:36:42 发布