一、为什么要是用Redis?

一、为什么要是用Redis?前言随着大数据时代的来临 随之而来的三高问题 高并发 高性能 高可用 也随之而来 数据库的写入压力增加 读写集中在一个数据库上让数据库不堪重负 大部分网站开始使用主从复制技术来达到读写分离 以提高读写性能和读库的可扩展性 MySQL 的 master slave 模式成为这个时候的网站标配了 MySQL 数据库也经常存储一些大文本的字段 导致数据库表非常的大 在做数据库恢复的时候就导致非常的慢 不容易快速恢复数据库 关系数据库很强大 但是它并不能很好的应付所有的应用场景 MySQL 的扩展性差 需要复杂的技

在这里插入图片描述

前言

随着大数据时代的来临,随之而来的三高问题(高并发,高性能 、高可用) 也随之而来。数据库的写入压力增加,读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性,MySQL的master-slave模式成为这个时候的网站标配了。

MySQL数据库也经常存储一些大文本的字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库,关系数据库很强大,但是它并不能很好的应付所有的应用场景,MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。在种种问题下, NoSQL 开始进入人们的视野。

NoSQL( NoSQL = Not Only SQL,意思:不仅仅是SQL)

NoSQL泛指非关系型的数据库,随着互联网Web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的社交网络服务类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展,NoSQL数据库的产生就是为了解决大规模数据集合多种数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。而 Redis是Nosql技术阵营中一员,它通过多种键值数据类型来适应不同场景下的存储需求

为什么要用NoSQL, 使用NoSQL可以带来什么好处?

1、易扩展

NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展,也无形之间,在架构的层面上带来了可扩展的能力。

2、大数据量高性能

NoSQL数据库都具有非常高的读写性能,尤其是在大数据量下,同样表现优秀。这得益于它的非关系性,数据库的结构简单。

官方记录:Redis 一秒可以写8万次,读11万次!

3、多样灵活的数据模型

NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式,而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是噩梦。

4、传统的RDBMS VS NoSQL

传统的关系型数据库 RDBMS

  • 高度组织化结构化数据
  • 结构化查询语言(SQL)
  • 数据和关系都存储在单独的表中
  • 数据操纵语言,数据定义语言
  • 严格的一致性
  • 基础事务

NoSQL

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
  • 键值对存储,列存储,文档存储,图形数据库
  • 最终一致性,而非ACID属性
  • 非结构化和不可预知的数据
  • CAP定理
  • 高性能,高可用性 和 可伸缩性

Redis 安装

这里就不在阐述了, 有兴趣的小伙伴请看:Linux、windows 下安装Redis图文教程

Redis 系列文章

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231261.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月18日 下午4:01
下一篇 2026年1月18日 下午4:22


相关推荐

  • 让你的Ubuntu 7.10支持Frame Buffer

    让你的Ubuntu 7.10支持Frame Buffer

    2021年5月1日
    122
  • 中标麒麟和centos区别_中标麒麟debian

    中标麒麟和centos区别_中标麒麟debian首先参考网上常见的CentOS如何本地yum安装软件的:(后面是中标麒麟)1、首先进行光盘的挂载,注意光盘挂载时不会自动建立目录的,所以需要自己建立目录mkdir/mnt/cdrommount/dev/cdrom/mnt/cdrom#dev目录为设备目录2、更改本地源地址cd/etc/yum.repos.d/#可以看见CentOS-Base.repo和Cen…

    2022年8月10日
    251
  • c++用socket,ftp进行文件传输,实现上传与下载文件功能

    c++用socket,ftp进行文件传输,实现上传与下载文件功能

    2021年3月12日
    233
  • 自学cad 零基础_零基础自学吉他的步骤

    自学cad 零基础_零基础自学吉他的步骤学习CAD制图其实不难,主要还是看个人,下面是学习啦小编带来关于cad的零基础自学教程的内容,希望可以让大家有所收获! CAD的零基础自学教程  自学cad制图第1章基础  1.设备绘图界限一般来说,如果用户不作任何设置,系统对作图范围没有限制,可以将绘图区看作是一幅无穷大的图纸。格式-图形界线命令:limits出现四个选项:开、关、指定左下角点、指定右下角点。高手课专注帮你学习。  2.设备绘图单位格式-单位命令:ddunits长度、角度、插入比例、方向…

    2025年8月30日
    8
  • android项目开发实战(android简单app实例代码)

    项目名:HoseWork完成时间:2018-10-01~2018-10-10性质:个人项目Demo地址:点击:https://github.com/FishInWater-1999/Android-app运行效果:产品介绍:学习星是一款面向广大学生、终生学习者打造的课程类app,集成了C,C++,Java,python,C#,JavaScript等十几种编程语言的学…

    2022年4月18日
    109
  • hashmap 实现原理_面试hashmap底层实现原理

    hashmap 实现原理_面试hashmap底层实现原理HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。  首先HashMap里面实现一个静态内部类Entry,其重要的属性有key,value,next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保存在Ent

    2022年4月18日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号