zoukankan      html  css  js  c++  java
  • Redis基本知识

    一、Nosql概述:

    1、为什么要用Nosql?

    用户的个人信息、社交网络、地理位置、用户自己产生的数据,用户日志等等在爆发式增涨,这时候我们就需要使用NoSQL数据库,可以很好处理以上情况

    2、 什么是NoSQL(not only sql)

    泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0时代,尤其是超大规模的高并发社区。暴露出来很多难以克服的问题,NoSQL在当下大数据环境下发展十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术。

    很多的数据类型:用户的个人信息、社交网络、地理位置。这些数据类型的存储不需要一个固定的格式

    3、NoSQL特点

    ①方便扩展(数据之间没有关系,很好扩展)

    ②大数据量高性能(redis一秒可以写8万次,读11万次,nosql的缓存记录集是一种细粒度的缓存,性能比较高)

    ③数据类型是多样的(不需要事先设计数据库,随取随用,如果是数据量十分大的表,很多人就无法设计了)

    ④传统RDBMS和NoSQL

    传统的RDBMS:

    结构化组织
    sql
    数据和关系都存在单独的表中
    数据操作,数据定义语言
    严格的一致性
    基础的事物操作

    NoSQL:

    不仅仅是数据
    没有固定的查询语言
    键值对存储,列存储、文档存储、图形数据库
    最终一致性
    CAP定理和BASE
    高性能,高可用、高可扩展性

    二、阿里巴巴演进分析

    1、商品的基本信息

    名称、价格、商家信息:关系型数据库就可以解决(mysql、oracle)推荐文章:阿里云的这群疯子

    2、商品的描述、评论(文字比较多)

    文档型数据库中:mongdb

    3、图片

    分布式文件系统:FastDFS

    4、商品的关键字(搜索)

    搜索引擎:solr

    5、商品热门的波段信息

    内存数据库:redis、Tair

    6、商品的交易、外部的支付接口

    三方应用

    思考:大型互联网应用问题:
    数据类型太多了
    数据源太多了,经常重构
    数据要改造,大面积改造

    三、NOSQL四大分类

    1、KV键值对

    redis

    2、文档型数据库

    mongdb(一般必须要掌握):

    一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档,是一个介于关系型数据库和非关系型数据库中中间产品,mongdb是非关系型数据库中功能最丰富,最像关系型数据库的

    3、列存储数据库

    分布式文件系统:FastFDS

    4、图形关系数据库

    graph
    存放的不是图片,存放的是关系,比如:朋友圈社交网络,广告推荐

    四、redis入门

    1、redis是什么?

    Remote Dictionary Server,远程字典服务

    是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    免费何开源,是当下最热门的NoSQL技术之一,也被人们称之为结构化数据库。

    2、redis能干嘛?

    ①内存存储、持久化,内存是断电即失,所以持久化很重要(rdb、aof)

    ②效率高、可以用于高速缓存

    ③发布订阅系统

    ④地图信息分析

    ⑤计时器、计数器

    3、特性

    支持多种数据类型

    支持持久化

    支持集群

    支持事物

    4、学习中需要用到的东西

    ①狂神的公众号:狂神说

    ②官网:https://redis.io/

    ③中文网:http://www.redis.cn/

    ④下载地址:通过官网下载即可(windows在github上下载)

    ⑤学习视频:https://www.bilibili.com/video/BV1S54y1R7SB?p=1

    5、安装

    windows安装:https://www.cnblogs.com/zhangguosheng1121/p/11153548.html

    linux安装:https://www.cnblogs.com/zhangguosheng1121/p/11988497.html

    6、redis基础知识

    redis是单线程的:

    redis是很快的,官方表示,redis是基于内存操作的,cpu不是redis性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了,所以就有了单线程

    redis是c语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用key-value的Memecache差

     思考:redis为什么单线程还真么快:

    1、误区1:高性能的服务器一定是多线程的

    2、误区2:多线程(cpu上下文切换)一定比单线程效率高

    核心:redis是将所有的数据全部放在内存的,所以说使用单线程去操作效率就是高,多线程(cpu上下文切换:耗时的操作)
    对于内存系统来说,如果没有上线文切换效率就是最高的。多次读写都是在一个cpu上的,在内存情况下,这个就是最佳的方案



  • 相关阅读:
    js 小数取整的函数
    VS2015 Apache Cordova
    C# 标签(条码)
    异步提交form的时候利用jQuery validate实现表单验证
    调试javascript
    Chrome 控制台console的用法
    MvcPager分页控件以适用Bootstrap
    更好理解接口
    为什么上班一天都是坐着,但仍会疲惫不堪?(转)
    如何解决空虚感?(转)
  • 原文地址:https://www.cnblogs.com/zhangguosheng1121/p/14892627.html
Copyright © 2011-2022 走看看