什么是Nosql

not only sql , 不仅仅是sql,是一项全新的数据库理念,泛指非关系型的数据库。

为什么需要NoSql

解决以下问题:

1 High Performance   对数据库高并发读写的要求

例如电商的秒杀,一瞬间很多人访问仓库。投票计数等等

2 Huge Storage  对海量数据的高效率存储和访问的需求

例如QQ,推特等等,几亿用户,产生的信息量关系型数据库很难应付。

3 High Scalability && High Availability  对数据库的高可拓展性和高可用性的需求

基于web的架构中,数据库是最难进行横向扩展的。当一个应用系统的用户量和访问量与日俱增的时候

你的数据库却没法像WebServer和app Server 那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力。

NoSql数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其大数据应用难题

主要的数据放在关系型数据库里面,性能提升的数据放在Redis里面

NoSQL数据库的四大分类:

键值对存储数据库:

  • 产品:Redis、Tokyo Cabiner、Voldemort
  • 典型应用:内容缓存,主要用于处理大量数据的高访问负载
  • 数据模型:一系列键值对
  • 优势:快速查询
  • 劣势:存储的数据缺少结构化

列存储数据库:

  • 产品:HBASE
  • 典型应用:分布式的文件系统
  • 数据模型:以列簇式存储,将同一列数据存在一起
  • 优势:查找速度快,可拓展性强,更容易进行分布式扩展
  • 劣势:功能相对局限

文档型数据库:

  • 相关产品:MogoDB
  • 典型应用:web应用(与Key-Value类似,Value是结构化的)
  • 数据模型:一系列键值对
  • 优势:数据结构要求不严格
  • 劣势:查询性能不高,缺乏统一的查询语法

图形数据库:

产品:InfoGrid

典型应用:社交网络

数据模型:图结构

优势:利用图结构相关算法

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案

NoSQL主流:Redis

Redis:用C语言开发的一个直接操作内存的开源的高性能键值对数据库,它提供多种数据类型来适应不同场景下的存储需求

目前为止Redis支持的键值数据类型如下:

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

官方测试数据:50个并发执行100000,读的速度是110000次/秒,写的速度是81000次/s.

Redis应用场景:

  • 缓存(数据查询,短连接,新闻内容,商品内容等等)
  • 聊天室的在线好友列表
  • 任务队列(秒杀,抢购,12306等等)
  • 应用排行榜
  • 网站访问统计
  • 数据过期处理(可以精确到毫秒)
  • 分布式集群架构中的session分离

Redis的安装:

Redis的安装包:源码形式提供,.c文件

将.c编译为.o文件 需要安装gcc依赖

将编译后的文件安装在Linux上

等价于 希望在当前系统上安装一个java版本的QQ,而下载到的安装文件是以.java这样的源码形式提供

需要:

下载Gcc :在系统上有JDK(gcc)

编译:通过JDK将源码编译为字节码

安装:编译依赖gcc环境,需要安装gcc

Redis的启动:

1前端模式启动:不推荐

只接短信bin/redis-server,缺点是启动完成后不能进行其他操作,除非用Ctrl+C结束程序,不推荐使用

2 后端启动

redis-cli连上redis服务后,可以在命令行发送命令

ping:测试客户端与Redis的连接是否正常,如果连接正常会受到回复PONG

set/get : 向Redis设置数据、获取数据  set name mary   get name

del:删除指定key的内容  del key1

二十三 NoSql&Redis及其安装的更多相关文章

  1. Redis集群(二):Redis的安装

    官方网站:http://redis.io/ 本系列撒使用的版本是:3.0.0 一.安装必要包 yum -yinstall gcc 二.linux下安装及使用(wget下载到当前目录) redis-3. ...

  2. redis(二十三):Redis 集群(proxy 型)二

    redis的确是一个非常高效的缓存服务器,但是单台redis服务器的内存管理能力有限,如果一味的加大内存的话会导致redis服务器的性能下降,所以就必须要搭建redis集群来提供服务.在redis官方 ...

  3. [nosql之redis]yum安装redis

    1.首先对于这种nosql来说目前我用到的功能很少,所以感觉没有必要去优化他跟不需要去编译安装.今天来介绍下一个yum安装redis 步骤1:安装扩展yum库 [root@localhost ~]# ...

  4. (转)NoSQL——Redis在win7下安装配置的学习一

    NoSQL——Redis在win7下安装配置的学习一   有些也是从网上看来的 1.下载安装 Redis它没有windows的官方版本,但是又非官方的版本,到官网上去下载相应的版本,我的电脑是win7 ...

  5. Redis学习——Windows环境下Redis的安装(二)

    一.说明 之前介绍了Linux环境下Redis的安装,这次介绍一下Windows环境下Redis的安装,首先要讲的是,Redis官方只支持Linux,还好 Microsoft Open Tech gr ...

  6. Linux服务器运行环境搭建(二)——Redis数据库安装

    官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...

  7. Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  8. Linux下Redis的安装与配置

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括stri ...

  9. redis&rabbitMQ安装

    前言: 学习python已经有一段时间了,最近在学twisted(博客:twisted安装),redis,rabbitMQ感觉有点难度,所以还是写下博客整理下. 一.Redis的安装 redis是一种 ...

随机推荐

  1. 【PAT甲级】1043 Is It a Binary Search Tree (25 分)(判断是否为BST的先序遍历并输出后序遍历)

    题意: 输入一个正整数N(<=1000),接下来输入N个点的序号.如果刚才输入的序列是一颗二叉搜索树或它的镜像(中心翻转180°)的先序遍历,那么输出YES并输出它的后序遍历,否则输出NO. t ...

  2. 「CF197B Limit」

    题目撞名 题目大意: 给出两个函数 \(P(x),Q(x)\). \(P(x)=a_0 \times x^N+a_1 \times x^{N-1}+a_2 \times x^{N-2} \cdots ...

  3. 最全BT磁力搜索引擎索引(整理分享,每日更新)

    btaa.xyz:http://www.veee.xyz/(可以访问,知名的BT磁力搜索,资源多,建议手机访问) 以下无法访问 idope.se:https://idope.se/(无法访问,资源丰富 ...

  4. linux动态监控dstat&&glances&&psutil&&bottle

    安装dstat yum install dstat 安装glances yum install python-devel pip install glances 如果我们安装了 Bottle 这个 w ...

  5. 0X01应用程序黑客技术

    前言 该文章主要是讲解了常见的应用程序黑客技术基本概念,包括消息钩取,API钩取,DLL注入,代码注入 天象独行 0X01:消息钩取 原理:在我们通过键盘,鼠标等输入信息过程中,Windows会通过钩 ...

  6. Python 文件和目录操作学习

    文件与文件路径 文件有两个关键属性:文件名和路径. 路径指明了文件在计算机上的位置. 文件名中,最后一个句点之后的部分称为文件的"扩展名",它指出了文件的类型 目录也叫文件夹,文件 ...

  7. Python学习第十九课——类的装饰器

    类的装饰器 # def deco(func): # print('==========') # return func # # # @deco #test=deco(test) # # def tes ...

  8. 从系统引导菜单禁用Hyper-V

    1, 从当前引导运行的系统复制一个新引导菜单项: bcdedit /copy {current} /d "Win10 NO_HV" 这时候cmd会输出新引导项的 guid, 复制出 ...

  9. JavaScript图形实例:正多边形

    圆心位于坐标原点,半径为R的圆的参数方程为 X=R*COS(θ) Y=R*SIN(θ) 在圆上取N个等分点,将这N个点首尾连接N条边,可以得到一个正N边形. 1.正多边形阵列 构造一个8行8列的正N( ...

  10. 中山Day10——普及

    今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...