Redis 特点:
所用语言:C/C
特点:运行异常快
使用许可: BSD
协议:类 Telnet
有硬盘存储支持的内存数据库,但自2.0版本以后可以将数据交换到硬盘(注意, 2.4以后版本不支持该特性!)
Master-slave复制
虽然采用简单数据或以键值索引的哈希表,但也支持复杂操作
INCR & co (适合计算极限值或统计数据)
支持 sets(同时也支持 union/diff/inter)
支持列表(同时也支持队列;阻塞式 pop操作)
支持哈希表(带有多个域的对象)
支持排序 sets(高得分表,适用于范围查询)
Redis支持事务
支持将数据设置成过期数据(类似快速缓冲区设计)
Pub/Sub允许用户实现消息机制
Redis 优点:
- 非常丰富的数据结构;
- Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断;
- 数据存在内存中,读写非常的高速,可以达到10w/s的频率。
Redis 缺点:
- Redis3.0后才出来官方的集群方案,但仍存在一些架构上的问题;
- 持久化功能体验不佳——通过快照方法实现的话,需要每隔一段时间将整个数据库的数据写到磁盘上,代价非常高;而aof方法只追踪变化的数据,类似于mysql的binlog方法,但追加log可能过大,同时所有操作均要重新执行一遍,恢复速度慢;
- 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。
Redis 应用场景:
适用于数据变化快且数据库大小可预见(适合内存容量)的应用程序。例如:微博、数据分析、实时数据搜集、实时通讯等。
不同的数据库根据其特点适用于不同的开发语言和场景,大家可以根据自己的实际需求选择合适的数据库。不会选择数据库也没关系,后面会给大家专门讲如何选择合适的数据库。
五、关系型与非关系型数据库的区别好啦,对于关系型数据库与非关系型数据库的概念和特点我们已经了解了,那么它们有哪些区别呢?下面给大家总结一下:
1、数据存储方式不同
关系型和非关系型数据库的主要差异是数据存储的方式。
关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。数据及其特性是选择数据存储和提取方式的首要影响因素。
2、扩展方式不同
SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
SQL数据库是纵向扩展,提高处理能力。
NoSQL数据库是横向扩展的,可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
3、对事务性的支持不同
SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。
NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。
至此,你对数据库的概念和类型是否已经有了大致的了解呢?Java语言的大多数应用程序都需要使用数据库,所以了解数据库的类型和基础知识是Java编程的必要环节,搞清楚数据库的相关知识,可以帮助我们更好地开发出高效、稳定和可扩展的应用程序。
我们下期再见!