前言
在理解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 。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-ulRaYrED-1712985531566)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!