本篇文章将讲解NoSQL,这里只是一个简单的讲解关系型 数据库的问题和NoSQL的优点,并不涉及到技术问题。
关系型数据库的问题
我们在实际开发中往往会遇到对数据进行复杂操作的时候数据库会变得很慢,尤其是在高并发的情况下数据库的响应速度很慢,那么造成这个问题的原因无非就是如下两个:
- 性能瓶颈:磁盘IO性能低下;
- 扩展瓶颈:数据关系 复杂,扩展性差,不便于大规模集群。
NoSQL 优点
为了解决这两个问题,同时也为了适应当下不断增长的数据规模和应用程序规模 ,就出现了NoSQL数据库。NoSQL数据库并不是一个数据库,而是一种数据库的总成,NoSQL 也并不是不要SQL,而是Not Only SQL 不仅仅是SQL,它是作为关系型数据库的补充。NoSQL数据库填补了关系型数据库的缺点,具有如下 优点:
- 快速扩容
- 快速伸缩
- 大数据量下依然能保证高性能
- 灵活的数据模型
- 高可用
常见的NoSQL
截止到目前为止,较为常见的NoSQL数据库有:
- Redis:适合用作缓存来使用,例如高并发读写和海量数据读写;
- HBase:适合大数据量的查询,不适合大范围的查询;
- MongDB:适合项目中的数据持续增加,但数据模式不固定的场景。
本篇文章我将带领大家了解Redis的概念、特征和常用应用场景,让我们开始吧。
什么是Redis
简单的说Redis是用C语言开发的一个开源的高性能键值对(Key-Value)数据库。
特征
网上有很多总结Redis特征的文章,但是要么太长太罗嗦,要么偏离了Redis的特征,根据我使用Redis的经验,我将Redis的特征总结为4种:
- 数据之间没有必然的关联关系;
- 内部采用单线程机制进行工作;
- 高性能;
- 支持多种数据类型:字符串类型(string)、列表类型(list)、散列类型(hash)、集合类型(set)、有序集合类型(sorted_set);
- 持久化支持,可以进行数据灾难恢复
Redis 应用
Redis并不是万能的,一般来说Redis经常用于如下场景中:
- 热点数据加速查询(常用场景);
- 任务队列;
- 即时信息查询;
- 时效性信息控制与查询;
- 分布式数据共享;
- 消息队列;
- 分布式锁。
总结
本篇文章可作为了解之用,截至目前为止,我们了解了NoSQL以及Redis,那么从下一篇文章开始,我们将正式步入Redis的世界。