常见的NoSQL数据库
NoSQL数据库发展迅猛,据说现在已经有上百种NoSQL数据库了,下面来了解下常见的一些NoSQL数据库
先来看张表,了解下典型的NoSQL数据库的分类
临时性键值存储 | 永久性键值存储 | 面向文档的数据库 | 面向列的数据库 |
Memcached | Tokyo Tyrant | MangoDB | Cassandra |
Redis | Flare | CouchDB | HBase |
ROMA | HyperTable | ||
Redis |
Memcached
- 挥发性(临时性)的键值存储
- 一般作为关系型数据库的缓存来使用
- 具有非常快的处理速度
- 由于存在数据丢失的可能,所以一般用来处理不需要持久保存的数据
- 用于需要使用expires时(需要定期清除数据)
- 使用一致性散列(Consistent Hashing)算法来分散数据
Tokyo Tyrant
- 持久性的键值存储
- 用来处理需要持久保存,高速处理的数据
- 具有非常快的处理速度
- 用于不需要定期清除的数据
- 使用一致性散列(Consistent Hashing)算法来分散数据
Redis
- 兼具Memcached和Tokyo Tyrant优势的键值存储
- 擅长处理数组类型的数据
- 具有非常快的处理速度
- 可以高速处理时间序列的数据,易于处理集合运算
- 拥有很多可以进行原子操作的方法
- 使用一致性散列(Consistent Hashing)算法来分散数据
MongoDB
- 面向无需定义表结构的文档数据
- 具有非常快的处理速度
- 通过BSON的形式可以保存和查询任何类型的数据
- 无法进行JOIN处理,但是可以通过嵌入(embed)来实现同样的功能
- 使用sharding(范围分割)算法来分散数据
上面多次提到了一致性散列,那到底什么是一致性散列呢?请参考这里 ,我就不赘述了
不过,当server数量很少时,很可能他们在圆周上的分布不是特别均匀,
导致cache不能均匀分布到所有的server上。
这时候,就该请出虚拟节点了
为每个物理节点(服务器)在圆上分配100~200个点,
这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布,
用户数据映射在虚拟节点上,就表示用户数据真正存储位置是在该虚拟节点代表的实际物理服务器上。
标签:
NoSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2013-03-06 i++和++i探秘