Redis到底是什么?
Posted 一心同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis到底是什么?相关的知识,希望对你有一定的参考价值。
📢📢📢📣📣📣
哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜
✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。
✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。
✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注【一心同学】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
目录
前言
在理解Redis是什么之前,我们先来学习什么是NoSQL,这样才可以更加方便我们去理解Redis。
一、NoSQL是什么?
NoSQL的全程是 Not Only SQL ,意思是:“不仅仅是SQL”,是指非关系型的数据库,是一项全新的数据库革命性运动。
🌴 关系型数据库与非关系型数据库区别
🚀关系型数据库:
(1)高度组织化结构化数据
(2)结构化查询语言(SQL)
(3)数据和关系都存储在单独的表中。
(4)数据操纵语言,数据定义语言
(5)严格的一致性
(6)遵循ACID规则 (原子性、一致性、隔离性、持久性,一个支持事务的数据库,必需要具有这四种特性,否则在事务过程当中无法保证数据的正确性)
🚀非关系型数据库:
(1)不仅仅是SQL
(2)没有声明性查询语言
(3)没有预定义的模式
(4)键 - 值对存储,列存储,文档存储,图形数据库
(5)最终一致性,而非ACID属性
(6)高性能,高可用,高可扩
🌴 为什么要用NoSQL?
在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付,故当时使用关系型数据库是没有问题的。
随着互联网技术的发展,MySQL 等关系型数据库就不够用了,因为我们需要存储很多非常大的数据,例如文件,博客,图片等等以及在商城网站中对商品数据频繁查询、对热搜商品的排行统计,订单超时问题,虽然关系型数据库也能做,但这样的话我们的数据库表就很大,性能也很低,而且数据的大量增加,我们对数据库的设计也越来越困难了!
而我们的非关系型数据库NoSQL就可以解决上面的问题,能够很好的处理这些大的数据!
🌴 NoSQL四大分类
类型 | 相关产品 | 应用场景 | 优点 | 缺点 |
键值数据库 | Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached | 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等 | 查找速度快,扩展性好、灵活性好、大量写操作时性能高 | 无法存储结构化信息、条件查询效率较低 |
列族数据库 | Cassandra,HBase,Riak | 分布式数据存储与管理 | 查找速度快、可扩展性强、容易进行分布式扩展、复杂性低 | 功能相对局限 |
文档数据库 | MongoDb,CouchDB | 存储、索引并管理面向文档的数据或者类似的半结构化数据 | 性能好、灵活性高、复杂性低、数据结构灵活 | 查询性能不高,缺乏统一的查询语言 |
图形数据库 | Neo4J,InfoGrid,Infinite Graph | 大量复杂、互连接、低结构化的图结构场合,如社交网络、推荐系统等注重于构建关系图的场景 | 灵活性高、支持复杂的图形算法、可用于构建复杂的关系图谱 | 复杂性高、只能支持一定的数据规模,很多时候需要对整个图做计算才能得出需要的信息 |
🔥 NoSQL小结
(1)NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。
(2)NoSQL数据库的出现,弥补了关系数据(比如mysql)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。
(3)MySQL和NoSQL都有各自的特点和使用的应用场景,两者的紧密结合将会给web2.0的数据库发展带来新的思路。让关系型数据库关注在关系上,NoSQL关注在存储上。
二、什么是Redis?
Redis是在NoSQL中发展最快同时也是最受欢迎的NoSQL数据库之一,是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。
三、 Redis的特点
(1)Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。
(2)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
(3)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等多种数据结构的存储。
(4)Redis支持数据的备份(master-slave)与集群(分片存储),以及拥有哨兵监控机制。
(5)支持事务。
四、Redis的优势
🚀性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
🚀丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
🚀原子 – Redis的所有单命令操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单条命令式保存原子性的,但是事务不保证原子性,通过MULTI和EXEC指令包起来。
🚀丰富的特性 – Redis还支持 发布/订阅(publish/subscribe), 通知, key 过期等等特性。
五、Redis的应用场景
假设在某一个大型网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
Redis的应用是非常广泛的,而且极有价值,是服务器中的一件利器!
小结
以上就是【一心同学】对【NoSQL】以及【Redis】的介绍,通过一番讲解,是不是对Redis的【强大】所震撼到了,虽然我们平时只是简单的浏览一个网站,但其网站后面所使用的【技术】却是经过了【很长时间】发展而来的,我们的【Redis】也是如此,在后面的博客里,【一心同学】将会【详细】介绍【Redis的使用】。
如果这篇【文章】有帮助到你,希望可以给【一心同学】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【一心同学】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!
以上是关于Redis到底是什么?的主要内容,如果未能解决你的问题,请参考以下文章