为什么要学Redis(NoSQL数据库)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 为什么要学Redis(NoSQL数据库)

🍖 NoSQL数据库引入

🥩 为什么要学NoSQL

 回顾之前的java后端学习历程,我们可以发现以往学习的技术可以被大致分为以下两种类型:其一,解决功能性问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN,通过这几门技术的学习就可以实现基础的业务逻辑编写;其二,解决扩展性问题:Struts、Spring、SpringMVC、Hibernate、Mybatis,以上几种框架或者说是技术可以增加我们程序的可扩展性,在对功能进行更改的时候就会简化操作

 当然,你可能会疑惑这些技术是不是就已经完全足够我们使用了,为什么还要学习Redis呢?那是因为,程序最终的功能是面向用户,但是用户群体肯定不止几个人而是一个很大的概念,当你的程序投入使用的时候也就代表着它要面临性能所带来的诸多问题。而以下技术就是用来解决性能问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch


🥩 web时代发展的问题及解决方案

image.png

如何解决CPU及内存压力?

 解决web 2.0 时代存在的CPU及内存压力问题,方案就是将原本的一台服务器采用分布式的方式部署在许多台服务器上,分布式部署需要在所有服务器之前使用负载均衡技术平均分配发送过来的所有请求,一般这个技术就是Nginx。但是分布式服务器就会存在一个关于session对象的问题,那就是如果同一个用户发送两次请求但是却被分配给了两个不同的服务器,那么这个时候如何正确读取到该用户的session对象就显得异常重要 image.png 上图就画出了分布式服务器的组件图,并给出了session存储的四个方案,其中NoSQL数据库存储session对象就是很好的一个解决方案,因为NoSQL中的数据都存储在内存中,数据读取速度很快且无需经过IO操作


如何解决IO压力?

 我们可以对数据库和表中的数据进行水平切分、垂直切分、读写分离等操作,在破坏一定的业务逻辑的基础上提高数据的IO性能;或者将频繁查询的数据拿出来放到缓存数据库中,由此减少IO的读操作提高查询速度;再或者将一些特殊的数据拿出来进行文档数据库或者列式数据库等的存储。通过这些方式来减少IO的压力



🍖 初识NoSQL数据库

🥩 NoSQL数据库简介

 NoSQL(Not Only SQL)意思是“不仅仅是SQL”,这一概念被用来泛指非关系型数据库(相对于关系型数据库的严格标准而言的一种概念)。NoSQL并不依赖业务逻辑方式进行存储,不遵循SQL标准,不支持ACID,且远超于SQL的性能

 NoSQL数据库大致上可分为四种,而我们要学的Redis就是其中一种典型的键值对数据库

image.png

NoSQL数据库的适用场景

对数据高并发的读写

海量数据的读写

对数据高可扩展性的

NoSQL数据库不适用的场景

需要事务支持

基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户根据自己的需求灵活选择查询条件,系统能够根据用户的选择生成相应的统计报表)

用不着sql的和用了sql也不行的情况,请考虑用NoSql

🥩 初识Redis

 Redis是一个开源的key-value存储系统,它和Memcached数据库类似,同样支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

 在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

 在初步认识过Redis之后,下一步就是要学习Redis的下载安装和使用了


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
11天前
|
存储 监控 NoSQL
九大核心NoSQL数据库及使用场景详解
【10月更文挑战第6天】在当今大数据与云计算飞速发展的时代,NoSQL数据库以其灵活的数据模型、可扩展性和高性能,成为了众多应用场景下的首选。本文将为您详细介绍九大核心NoSQL数据库及其典型使用场景,帮助您在工作和学习中更好地选择和应用。
34 3
|
3天前
|
存储 NoSQL 搜索推荐
nosql
【10月更文挑战第14天】nosql
8 2
|
17天前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
15 1
|
27天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
105 2
|
7天前
|
存储 SQL 分布式计算
NoSQL 简介
10月更文挑战第10天
18 0
|
8天前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
13天前
|
存储 NoSQL Java
Java中NoSql 数据库的使用
Java中NoSql 数据库的使用
11 0
|
13天前
|
SQL 存储 NoSQL
SQL和NoSQL数据库的全面比较
不可否认,已有越来越多开发人员愿意使用NoSQL数据库,并且在不断地壮大着其相应的社区。但是,相对于成熟的SQL社区,该领域的专家和顾问可能需要更多的时间,去解决那些未曾被记录的NoSQL问题。
28 0
|
17天前
|
存储 NoSQL Java
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
9 0
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6