首页 > 其他 > 详细

学习总结

时间:2019-11-21 00:00:41      阅读:104      评论:0      收藏:0      [点我收藏+]

linux的学习总结

https://blog.csdn.net/qq_35919588/article/details/80426634

1,NoSql介绍

  1. NoSql(Not Only Sql):泛指非关系型数据库
  2. 主要是用来处理大型数据:
    1. 举个例子: 比如存放一个员工,员工的信息有很多属性,这些关系需要多个字段多张表进行存储,不如把这些数据存放在一个json字符串中比较方便,知识为了方便查看
    2. 在开发中查询的占比比较大,把一些不经常修改或者是不修改的数据存放在非关系数据库中,查询比较方便
    3. 主要用于大数据中,进行解析分析
  3. 分类:
    1. 键值(Key-Value)存储数据库
      1. 主要使用到hash表,一个特定的值和一个指针指向特定的数据
      2. 优点:  简单易部署
      3. 缺点:  只对部分数据进行查询或者更新的时候,效率就会显的低下
    2. 列存储数据库:
      1. 用来应对分布式存储的海量数据
      2. 价值对存在,就是键对应着多条数据
    3. 文档型数据库:
      1. 查询效率比较高,
      2. 对事物的支持不友好
      3. 比如:json的存储格式
    4. 图形数据库,图片 ,音频,视频,文件服务器:
      1. 使用灵活的图形模型,并且能够扩展到多个服务器上.
      2. NoSql没有标准的查询语言(标准的sql语句), 数据库查询需要制定数据库模型,
      3. 许多nosql数据库都有rest式的数据接口或者查询API
  4. 应用场景:
    1. 技术分享图片
      1         1、数据模型比较简单;
      2     2、需要灵活性更强的IT系统;
      3     3、对数据库性能要求较高; 
      4     4、不需要高度的数据一致性; nosql 弱化事务 没有事务  当当购物车 
      5     5、对于给定key,比较容易映射复杂值的环境(redis)。
      6     
      点击查看

       

2,redis学习总结:

该笔记借鉴的作者是:

https://blog.csdn.net/u012562943/article/details/49514341[ 详解 ]

  1.  redis使用C语言写的,开源的,支持网络交互的,基于内存持久化的Key-Value数据库
  2. redis数据结构
    1. 字符串(strings)
    2. 字符串类别(lists)
    3. 字符串集合(sets)
    4. 有序字符串集合(sorted sets)
    5. 哈希(hashes)
  3. redis持久化---两种:
    1. RDB(Redis DataBase):redis数据库
      1. 将数据存放在磁盘中
    2. AOF(Append Only File): 仅附加文件
      1. 将所有的指令存放在文件中,下次直接执行文件中的指令就可以恢复数据
    3. 两种方式可以同时使用,redis重启优先会AOF的方式恢复数据,AOF的方式恢复数据完整度高.
    4. 也可以不适用redis,redis就是一个内存数据库;
  4. redis持久化 ----RDB:
    1. 是将redis中某一时刻的数据持久化到磁盘中,用快照的方式持久化,过程如下
      1. 先将数据写入到一个临时文件中,待持久化过程结束,将这个临时文件替换上次持久化好的文件
      2. RDB单独创建一个子进程来持久化,而主进程是不会进行任何IO操作的,确保redis的性能
      3. 优点:  处理大量数据,恢复不是特别重要的数据,RDB方式比AOF更加高效
  5. redis持久化----AOF:
    1. AOF持久化策略默认每秒钟把缓存中的写指令记录到磁盘中一次, redis可以保持很好的处理性能,及时redis故障也只是缺失最后一秒的数据
    2. 如果在追加日志时,恰好遇到磁盘空间满...一些突发情况导致日志写入不完整,  redis提供了redis-check-aof工具,可以进行对日志的修复
    3. 因为采用了追加方式,如果不做任何处理的话,AOF文件越来越大,为此,redis提供了AOF文件重写机制当AOF文件超过阈值时,redis就会启动AOF文件的内容压缩只保留可以恢复数据的最小指令集
      1. 例子: 调用多少次指令就存放多少次指令,这样效率比较低,可以把这些指令存放到一个set集合集合中,过滤掉一些重复的指令,只保留数据最终的存出结果,这就是重写机制的原理
    4. AOF重写时, 任然采用的是先写临时文件,全部完成后再替换的流程;
    5. AOF比较好用的地方:  
      1. 如果说不小心删除了redis中的所有数据,此时可以通过AOF的持久化,暂停redis,将AOF文件指令中的失误指令删除,重启的时候会重新执行AOF文件,这样数据就恢复了,如果说AOF已经被重写了就不能采取上边的操作了
    6. 缺点:在同等数据规模下,AOF文件要比RDB文件的体积大,并且AOF方式的恢复比RDB要慢
    7. 重写AOF文件获取最小指令集:  BFREWRITEAOF
    8. redis中AOF常见的问题:
      1. 技术分享图片
        1 1.备份被写坏的AOF文件
        2 2.运行redis-check-aof –fix进行修复
        3 3.用diff -u来看下两个文件的差异,确认问题点
        4 4.重启redis,加载修复后的AOF文件
        如果出现了AOF文件写坏
  6. redis持久化----AOF重写
    1. 执行流程:
      1. 重写的时候redis创建一个"重写的子进程",
      2. 这个子进程会读取现有的AOF文件,
      3. 将文件中的指令分析解压并写入到一个临时的文件中.
      4. 此时主进程会将新接收的写指令累计在缓存区中,一遍继续写入到原有的AOF文件中
      5. "重写子进程"完成工作后,会给父进程发一个信号,父进程将会把内存中缓存的指令追加到新AOF中
      6. 追加完成后,redis就会用新AOF文件替换AOF文件之后在有新的写指令追加到新的AOF文件中
  7. 主从用法(待续):
  8.   

Redis和memcahed对比:

  1. 共同点:
    1. 底层都是用C语言编写,都是基于key-value内存存储
  2. 不同点:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

学习总结

原文:https://www.cnblogs.com/Consola/p/11901957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!