2025-01-02 10:46:09 +08:00

50 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 简介
Redis是一个开源的key-value存储系统它支持存储的value类型相对更多包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash哈希类型。为了保证效率数据都是缓存在内存中。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。并且在此基础上实现了master-slave(主从)同步。通过破坏一定的业务逻辑来换取性能。
Redis默认16个数据库默认为0库所有库同样的密码。Redis 使用的单线程+多路IO复制技术。
# NoSQL数据库概述
NoSQL(NoSQL = Not Only SQL )指非关系型的数据库。NoSQL不依赖业务逻辑方式存储而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
- 不遵循SQL标准
- 不支持ACID。
- 远超于SQL的性能。
## NoSQL适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
## NoSQL不适用场景
- 需要事务支持
- 基于sql的结构化查询存储处理复杂的关系。
## NoSQL产品介绍
**Memcache**
- 很早出现的NoSQL数据库
- 数据都在内存中,一般不持久化
- 支持简单的key-value模式支持类型单一
- 一般是作为缓存数据库辅助持久化的数据库
**Redis**
- 几乎覆盖了Memcached的绝大部分功能
- 数据都在内存中,支持持久化,主要用作备份恢复
- 除了支持简单的key-value模式还支持多种数据结构的存储比如 list、set、hash、zset等。
- 一般是作为缓存数据库辅助持久化的数据库
**MongoDB**
- 高性能、开源、模式自由(schema free)的**文档型数据库**
- 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
- 虽然是key-value模式但是对value尤其是**json**)提供了丰富的查询功能
- 支持二进制数据及大型对象
- 可以根据数据的特点**替代RDBMS**(关系型数据库) 成为独立的数据库。或者配合RDBMS存储特定的数据