Redis入门(一)-Redis简介
最近几年,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简介的更多相关文章
- Redis入门实例(Redis+Sprint+maven创建工程)
一.>创建一个maven工程应用和相关配置:Redis_study,创建工程应用过程略 1.>配置pom.xml:文件内容如下 <project xmlns="http:/ ...
- Redis 入门之Redis简介
Reids 是一个开源的高性能键值对数据库.它通过多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存.队列系统等不同的角色. 1.Reids的诞生 Redis到底是在 ...
- Redis入门笔记-redis内部数据结构(01)
redis是一个轻量级的Nodsql数据库,使用kev-value的形式存储数据,在redis的世界里,没有整数.浮点数等概念,大多数情况下数据以字符串形式展现,偶尔会出现Long类型数据的场景. 一 ...
- 安装redis入门
redis官网:redis.io redis版本用的是redis-3.2.2 $ wget http://download.redis.io/releases/redis-3.2.2.tar.gz $ ...
- redis入门(一)
目录 redis入门(一) 前言 特性 速度快 简单稳定 丰富的功能 历史 历史版本 安装与启动 安装 数据类型与内部编码 数据结构 内部编码 常用API与使用场景 常用命令 字符串 列表 哈希 集合 ...
- redis入门(二)
目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在redis入门(一)简单 ...
- redis入门(三)
目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 re ...
- Redis入门指南之一(简介)
1. 简介 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同的场景下的缓存与存储需求.同时Redis的诸多高级功能使其可以胜任消息队列.任务队列等不同的 ...
- Redis入门很简单之一【简介与环境搭建】
Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件 [Redis简介] <一>. NoSQL ...
- redis从入门到放弃 -> 简介&概念
一.redis简介 Redis是一款开源的.高性能的键-值存储.它常被称作是一款数据结构服务器. 当值支持的主要数据类型为:字符串(strings)类型,括哈希(hashes).列表(lists).集 ...
随机推荐
- 算法题-Z 字形变换
描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R ...
- 如何在Android手机上进行自动化测试(下)
版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 通过阅读本篇教程,你将会了解到: 如何使用Poco对Android原生应用进行测试 Poco支持直接对任何Android原生应 ...
- Dubbo环境搭建-ZooKeeper注册中心
场景 Dubbo简介与基本概念: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555224 注: 博客: https:// ...
- iOS开发-APP图标、启动页、名字的设置
APP图标.启动页.名字的设置:(较全面,但是APP启动页讲述的有漏洞) 参考链接:https://www.jianshu.com/p/2c7e181276ff APP启动页:(弥补上一文的漏洞) 参 ...
- LL(1)文法的判断,递归下降分析程序
1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G ...
- java基础练习题
1变量.运算符和类型转换:1.1手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩 Scanner scan = new Scanner(System.in); Sys ...
- sqlserver update join 多关联更新
由于程序bug,导致之前很多数据入库后信息不全,好在有基础信息表,可以通过基础信息表更新缺失字段信息 1.通过 inner join语法实现多关联更新 update a set a.name = b. ...
- 《Hands-On System Programming with Go》之写文件的代码模板
使用了buffer,这个神奇东东. var w io.WriteCloser // initialise writer defer w.Close() b := bufio.NewWriter(w) ...
- 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总
作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...
- 从零开始手写 dubbo rpc 框架
rpc rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo. 主要用于个人学习,由渐入深,理解 rpc 的底层实现原理. 前言 工作至今,接触 rpc 框架已经有很长时间. ...