最近几年,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. 算法题-Z 字形变换

    描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R ...

  2. 如何在Android手机上进行自动化测试(下)

    版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 通过阅读本篇教程,你将会了解到: 如何使用Poco对Android原生应用进行测试 Poco支持直接对任何Android原生应 ...

  3. Dubbo环境搭建-ZooKeeper注册中心

    场景 Dubbo简介与基本概念: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555224 注: 博客: https:// ...

  4. iOS开发-APP图标、启动页、名字的设置

    APP图标.启动页.名字的设置:(较全面,但是APP启动页讲述的有漏洞) 参考链接:https://www.jianshu.com/p/2c7e181276ff APP启动页:(弥补上一文的漏洞) 参 ...

  5. LL(1)文法的判断,递归下降分析程序

    1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G ...

  6. java基础练习题

    1变量.运算符和类型转换:1.1手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩 Scanner scan = new Scanner(System.in); Sys ...

  7. sqlserver update join 多关联更新

    由于程序bug,导致之前很多数据入库后信息不全,好在有基础信息表,可以通过基础信息表更新缺失字段信息 1.通过 inner join语法实现多关联更新 update a set a.name = b. ...

  8. 《Hands-On System Programming with Go》之写文件的代码模板

    使用了buffer,这个神奇东东. var w io.WriteCloser // initialise writer defer w.Close() b := bufio.NewWriter(w) ...

  9. 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总

    作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...

  10. 从零开始手写 dubbo rpc 框架

    rpc rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo. 主要用于个人学习,由渐入深,理解 rpc 的底层实现原理. 前言 工作至今,接触 rpc 框架已经有很长时间. ...