最近几年,Rddis非常的火,受到广大中大型公司,特别是互联网公司的青睐。而作为后端开发,如果你不知道Redis或不会用,没用过,你都不好意思出去找工作。可想而知Redis对于IT行业意义多么重大。对于一些初学者可能并不了解Redis,所以,我们接下来一起来学习一下Reids的一些基本概念,进而加深对Redis的理解。

Redis是什么?

首先看官网的解释:

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

对于小白来说,看了上面的解释可能依旧很懵逼,通俗一点讲,那就是Redis是一款NoSQL数据库产品,是一个基于key-value存储数据的服务器。相对于MySQL、Oracle这些关系型数据库来说,Redis是非关系型数据库。而且Redis是基于内存存储的,也就是说存在Redis里的数据其实是直接存在内存里的,我们都知道计算机直接去读取内存的话,那速度是相当快的,相对于关系型数据库内存是存在磁盘里的,读取的时候需要先从磁盘读取到内存,然后程序再从内存读取数据。这样就多了一次拷贝,并且读取磁盘并不像读内存那样块,所以在速度上肯定比不上直接读取内存。这也是Redis比较快的一个重要因素。另外,Redis是开放源代码的完全免费的,社区比较活跃,更新速度快,是基于C语言实现的。

刚才说到非关系型数据库,解释一下什么是非关系型数据库。所谓非关系型数据库,是相较于传统的关系型数据库(MySQL,Oracle)来说的。我们都知道,在使用MySQL或Oracle之前,我们都要先建数据库,然后创建表结构,其次才可以往表里插入数据,读取数据。相反,对于非关系型数据库Redis来说,则不需要建库建表,只要服务启动,就可以通过客户端来访问,并存取数据。Redis没有那些复杂的表结构,不是靠表和字段来进行约束的,而是通过key-value的方式对数据进行存取。

数据存在内存会有丢失的可能,Redis也想到了这一点,所以Redis还支持多种方式的持久化,Redis内的数据可以在合适的时候持久化到磁盘。Redis支持数据的备份,即master-slave模式的数据备份。

总结几点就是,数据存在内存、高速读取、nosql、key-value型、非关系型、开源免费、数据类型丰富、可持久化可备份。

为什么选择Redis?

1、性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。(官方数据)

2、丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

3、原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

4、丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他类似产品存储方式有什么不同?

1、数据结构丰富且复杂

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。

2、操作简单,容易上手

Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。

3、可持久化

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。

4、数据存储紧凑

在磁盘格式方面他们是紧凑的以追加的方式产生的,所以他们并不需要进行随机访问。

到此,大家对Redis有了简单的了解了吧,希望对于初学者来说有所帮助。下一节将会讲述,Redis能够做什么。

【end】

Redis入门(一)-Redis简介的更多相关文章

  1. Redis入门实例(Redis+Sprint+maven创建工程)

    一.>创建一个maven工程应用和相关配置:Redis_study,创建工程应用过程略 1.>配置pom.xml:文件内容如下 <project xmlns="http:/ ...

  2. Redis 入门之Redis简介

    Reids 是一个开源的高性能键值对数据库.它通过多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存.队列系统等不同的角色. 1.Reids的诞生 Redis到底是在 ...

  3. Redis入门笔记-redis内部数据结构(01)

    redis是一个轻量级的Nodsql数据库,使用kev-value的形式存储数据,在redis的世界里,没有整数.浮点数等概念,大多数情况下数据以字符串形式展现,偶尔会出现Long类型数据的场景. 一 ...

  4. 安装redis入门

    redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...

  5. redis入门(一)

    目录 redis入门(一) 前言 特性 速度快 简单稳定 丰富的功能 历史 历史版本 安装与启动 安装 数据类型与内部编码 数据结构 内部编码 常用API与使用场景 常用命令 字符串 列表 哈希 集合 ...

  6. redis入门(二)

    目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在redis入门(一)简单 ...

  7. redis入门(三)

    目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 re ...

  8. Redis入门指南之一(简介)

    1. 简介 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同的场景下的缓存与存储需求.同时Redis的诸多高级功能使其可以胜任消息队列.任务队列等不同的 ...

  9. Redis入门很简单之一【简介与环境搭建】

    Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件  [Redis简介] <一>. NoSQL ...

  10. redis从入门到放弃 -> 简介&概念

    一.redis简介 Redis是一款开源的.高性能的键-值存储.它常被称作是一款数据结构服务器. 当值支持的主要数据类型为:字符串(strings)类型,括哈希(hashes).列表(lists).集 ...

随机推荐

  1. Java并发线程池到底设置多大?

    前言 在我们日常业务开发过程中,或多或少都会用到并发的功能.那么在用到并发功能的过程中,就肯定会碰到下面这个问题 并发线程池到底设置多大呢? 通常有点年纪的程序员或许都听说这样一个说法 (其中 N 代 ...

  2. 3步轻松搞定Spring Boot缓存

    作者:谭朝红 前言 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能.在Spring Boot应用程序中,我们可以通过Spring Caching来快速 ...

  3. 最简单的 Java内存模型 讲解

    前言 在网上看了很多文章,也看了好几本书中关于JMM的介绍,我发现JMM确实是Java中比较难以理解的概念.网上很多文章中关于JMM的介绍要么是照搬了一些书上的内容,要么就干脆介绍的就是错的.本文试着 ...

  4. Power Platform之Power Automate新增RPA功能

    ​ 什么是RPA RPA( Robotic Process Automation 机器人流程自动化软件),是一种新型的人工智能的虚拟流程自动化机器人.RPA的核心是通过自动化.智能化技术来“替代人”进 ...

  5. MySQL创建数据表时设定引擎MyISAM/InnoDB

    我在配置mysql时将配置文件中的默认存储引擎设定为了InnoDB.今天查看了MyISAM与InnoDB的区别,在该文中的第七条"MyISAM支持GIS数据,InnoDB不支持.即MyISA ...

  6. 《Java知识应用》Java发送邮件(QQ,163)

    1 准备 Jar包下载地址: 链接: https://pan.baidu.com/s/1kFZgWRR8yZaQH_baf6tzAg 提取码: x2e8 邮箱:授权码 2.案例: 通过QQ邮箱服务器 ...

  7. 两个实例轻松理解js函数预解析

    js函数预解析 例子1: 先上一段代码,看看能不能写出最终的执行结果. console.log(a); var a = 1; console.log(a); function a(){ console ...

  8. 实验:使用GDB查看结构体在内存中的存储方式

    结构体在内存中的表示形式是怎么样的? 结构体在内存中和普通变量存储没有太大的区别. 首先我们看看,计算机如何读取普通变量:   普通变量例如int是占据4个字节,计算机读内存的时候会从起始地址开始读, ...

  9. 虚拟化和Docker

    1.硬件层的虚拟化具有高性能和隔离性,因为hypervisor直接在硬件上运行,有利于控制VM的OS访问硬件资源,使用这种解决方案的产品有VMware ESXI和Xen server. 2.hyper ...

  10. IOS弓箭传说的插件开发

    1.导出ipa进行解压后,定位到执行程序archero,ida加载后,发现很多都是sub_xxx开头的. 2.搜索资料后,原来Unity编写的程序,可以使用Il2CppDumper进行符号表还原. 下 ...