再说Redis之前,想先说一下NoSQL。在最早的单机时代,随着数据的增加一台机器可能放不下了。同时索引占用的内存空间也会越来越大。对请求的读写操作影响很大。于是就在数据库之前增加了一层保护层 — 缓存。另外由于关系型数据库MySQL、Oracle等在某些场景下读写效率较差,灵活性较低,I/O瓶颈限制。使得NoSQL应用的越来越广泛。

  NoSQL

  NoSQL, Not Only SQL,也就是我们所说的非关系型数据库。常用的有Redis、Memcached、MongoDB等。

  NoSQL数据库具有强大的读写性能,主要原因还是因为它的无关系性,数据结构相对简单。比如MySQL这样的关系型数据库我们需要实现建立好表结构,如果需要增加字段还需要通过alert table来进行新增。但是非关系型数据库就没有这么麻烦。我们可以随时自定义数据格式。

  

  数据库比较

  关系型数据库

  结构化查询语言(SQL语句)

  严格的一致性

  基础事物非关系型数据库

  没有特定的查询语言

  有K-V存储,列存储,文档存储,图形数据库

  最终一致性

  非结构化和不可预知的数据

  高性能,高可用和伸缩性

  CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)NoSQL四大分类

  KV键值对,如Redis。用于内容缓存,主要用于处理大数据的高访问负载,也用于一些日志系统等.

  列存储数据库,如HBase。分布式的文件系统。

  文档性数据库,如MongoDB。主要用于WEB应用。也是k-v结构的。

  图形数据库,如Neo4J。主要用于社交网络,推荐系统等.Redis

  Redis:Remote Dictionary Server (远程字典服务器)。

  是一个用C语言编写的,开源的,高性能的(K/V)分布式内存数据库。

  特点:

  支持数据的持久化

  支持丰富的数据类型,String、List、Hash、Set、Zset

  支持数据备份,即master-slave

  单线程且支持事物应用场景:

  由于可以持久化,因此可以用来存储数据。

  消息队列系统

  社交关系(如,共同关注的人,粉丝列表等)

  排行榜、热点新闻列表

  秒杀系统为什么那么快:

  Redis是纯内存操作,需要的时候需要我们手动持久化到硬盘中

  Redis是单线程,从而避开了多线程中上下文频繁切换的操作。

  Redis数据结构简单、对数据的操作也比较简单

  使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求

  使用多路I/O复用模型,非阻塞I/OI/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪,就是这个文件描述符进行读写操作之前),能够通知程序进行相应的读写操作

  Redis的数据类型

  Redis支持丰富的数据类型

  String

  字符串是最基本的一个数据类型,String是二进制安全的,也就是说String可以包含任何数据,因此我们可以存放序列化之后的对象或者是图片内容。

  一条redis数据可以存放最大的字符串为512M。

  Hash

  我们可以把他理解为Java中的map,Python中的dict。是一个键值对的集合。适合于存储对象

  List

  是一个字符串的集合,默认按照插入顺序排序,我们也可以通过不同的命令将数据插入到集合的头部或者尾部

  Set

  用于存放无序不重复的集合,集合中最大的成员数为 232 - 1 (4294967295,每个集合可存储40多亿个成员)。

  Zset

  即 sorted set ,有序不重复集合。每个元素都会有一个对应的double类型的分数(score),通过这个分数进行排序。元素不允许重复,但是分数可以。

NoSQL&&Redis介绍的更多相关文章

  1. NoSQL & Redis 介绍、缓存穿透 & 击穿 & 雪崩

    1. NoSql 简介 2. Redis 简介 2.1 Redis 的起源 2.2 缓存过期 & 缓存淘汰 3. 缓存异常 1)缓存穿透 2)缓存击穿 3)缓存雪崩 4)总结 1. NoSQL ...

  2. [NOSQL] Redis介绍

    Redis概述 Redis是Salvatore Sanfilippo在2009年为其初创公司LLOOGG开发的,眼下仍是独立项目.但VMWare赞劣了项目(作者是其雇员).它採用C语言实现.因此性能非 ...

  3. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  4. redis笔记总结之redis介绍

    一.Redis介绍: redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开源的.轻量级的.非关系型的,直到现在一直不断完善的一款NoSql数据库.具体的介绍大家可以 ...

  5. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  6. NoSQL -- Redis使用

    NoSQl简介: ubuntun CTRL+alt+F1 图形切换到命令行 CTRL+alt+F7  命令行切换到图形界面 redis介绍 + 实践 Redis是什么? Redis 安装 edis是当 ...

  7. Redis介绍及部署在CentOS7上(一)

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  8. redis 介绍

    缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是 ...

  9. 基于Python操作redis介绍

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 毕业前的最后一个学期(2016.03),龙哥结婚了.可是总有些人喜欢嘲笑别人,调侃我.当时我就理直气壮的告诉他们,等龙哥孩子 ...

随机推荐

  1. Python在运维工作中的经典应用之ansible

    1.安装ansible wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /e ...

  2. 素数判断 - C语言实现

    除了1和自身之外不能整除其它数, 称之为素数. 最小的素数是2. 没有最大的素数. 1000以内素数, 如下图所示: 关于素数的算法, 一般有2种. 第1种, 给出一个数n(n >= 2), 判 ...

  3. MapReduce Unit Test

    以前用java写MR程序总不习惯写单元测试,就是查错也只是在小规模数据上跑一下程序.昨天工作时,遇到一个bug,查了好久也查出来.估计是业务逻辑上的错误.后来没办法,只好写了个单元测试,一步步跟踪,瞬 ...

  4. Python 学习笔记之random 模块

    要使用Random 模块里的一些随机数方法需要先导入random 模块. 下面是几种常用的随机数方法: 以生成随机8位密码,包括大小写字母,数字为例 pwd = ''.join(random.samp ...

  5. CentOS忘记用户名或者密码解决办法

    方法一:如果用户名和密码都忘记了,可以用以下这个方法找回:(和第二种大步骤差不多,需注意3,4步) 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键 2. 再次用上下键 ...

  6. android 读取联系人

    设置读取权限 <uses-permission android:name="android.permission.READ_CONTACTS" />     <u ...

  7. SQL Server OBJECTPROPERTY使用方法

    OBJECTPROPERTY 返回有关当前数据库中的模式作用域对象的信息.此函数不能用于不是模式范围的对象,例如数据定义语言(DDL)触发器和事件通知. OBJECTPROPERTY 语法: OBJE ...

  8. PKU 2559 Largest Rectangle in a Histogram(单调栈)

    题目大意:原题链接 一排紧密相连的矩形,求能构成的最大矩形面积. 为了防止栈为空,所以提前加入元素(-1,0) #include<cstdio> #include<stack> ...

  9. logstash安装

    1.下载并安装公共签名密钥 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 2.创建镜像源文件:/etc/yum.rep ...

  10. koa2+mongoose搭建框架模型

    由于学的是java,所以此框架多少有点java的影子,我觉得不必排斥语言,只要思想好,所有语言均可以通用.项目分以下几层 app.js项目启动入口,类似于main函数 controller-view层 ...