NoSql数据库

什么是NoSql?常用的NoSql有哪些?

1.什么是NoSql?

1
2
3
NoSQL,指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2.NoSql和关系型数据库的区别?

1
存储方式、存储结构、存储规范、存储扩展、查询方式、事务、性能

3.常用的关系型数据库

1
mysql、sql server、oracle

4.常用的NoSql数据库

1
redis、memcache

5.redis和memcache的区别?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1、数据操作不同

Memcached仅支持简单的key-value结构的数据记录

Redis支持的数据类型要丰富的多,字符串、哈希表、链表、集合、有序集合

2.内存管理机制不同

当内存中的值到了一定上限的时候Redis会计算出哪些key对应的value需要swap到磁盘。
然后再将这些key对应的value持久化到磁盘中,同时在内存中清除。这种特性使得Redis可以保持超过其机器本身内存大小的数据。

而Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录

3、性能不同

由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。

而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis也在存储大数据的性能上进行了优化,但是比起Memcached,还是稍有逊色。

4.集群管理不同

Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法来实现Memcached的分布式存储。

相较于Memcached只能采用客户端实现分布式存储,Redis更偏向于在服务器端构建分布式存储。