zoukankan      html  css  js  c++  java
  • 一 分布式缓存redis概念

    什么是NOSQL

    NoSQL是不同于传统的关系数据库的数据库管理系统的统称。其两者最重要的区别是NoSQL不使用SQL作为查询语言。
    NoSQL数据存储可以不需要固定的表格模式。NoSQL是基于键值对的,可以想象成表中的主键和值的对应关系。
    NoSQL:redis、memcached、mongodb、guava(loadingCache)

    什么是Redis

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)、散列(hashes)、 列表(lists)、 集合(sets)、 有序集合(sorted sets)等。

    从mysql出发来认识redis

    概念

     关系型数据库的一个常见用法是存储长期的报告数据,并将这些报告数据用作固定时间范围内的聚合数据。

    收集聚合数据的常见做法是:先将各个行插入一个报告表里面, 之后再通过扫描这些行来收集聚合数据, 并更新聚合表中巳有的那些行。

    图解redis为什么出现

    详细图解

    查询优化器:join,left join,子查询,依赖子查询进行复杂sql及排序的优化。

    Redis和memcached和mysql之间的区别

    redis和memcached各有什么优势

    内存管理机制进行比较

    Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块  以存储相应长度的key-value数据记录,以完全解决内存碎片问题。空闲列表进行判断存储状态。

    Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片。

    优先查找那块内存是空闲的,找到则分配。【cpu内存连续的,java虚拟机的内存分配类似于redis,直接内存分配(指针碰撞)】

    数据持久化方案比较

    memcached不支持内存数据的持久化操作,所有的数据都以in-memory的形式存储。

    redis支持持久化操作。redis提供了两种不同的持久化方法来讲数据存储到硬盘里面

    • rdb:属于全量数据备份,备份的是数据
    • aof:append only if,增量持久化备份,备份的是指令 [如:set key, del key]

    缓存数据过期机制比较

    Memcached 在删除失效主键时也是采用的消极方法,即 Memcached 内部也不会监视主键是否失效,而是在通过 Get     访问主键时才会检查其是否已经失效。

    Redis 定时、定期等多种缓存失效机制,减少内存泄漏

    支持的数据类型

    Memcached支持单一数据类型,[k,v]

    redis支持五种数据类型。

    redis作为数据库和作为内存缓存的两种使用方法

    redis作为数据库的使用有什么优缺点

    优点
    • 没有Scheme约束,数据结构的变更相对容易,一开始确定数据类型
    • 抗压能力强,性能极高,10万/qps
    缺点
    • 没有索引,没有外键,缺少int/date等基本数据类型,
    • 多条件查询需要通过集合内联(sinter,zinterstore)   和连接间接实现
    • 开发效率低,可维护性不佳

    redis作为缓存的使用,搭配数据库使用的两种方案

    • jedis整合使用方案        set key,value ["11","22"]  第一层在缓存进行查询,如果得到数据则直接返回,     第二层在数据库进行查询,并且刷新缓存,方便下次查询  ["33,"44"]
    • 作为mybatis/hibernate二级缓存使用方案,一级缓存:sqlSession,进程缓存,单次链接有效。

    图解分析加redis前后的架构区别

     

  • 相关阅读:
    初窥AndroidPlot(一)
    Android Studio安装、配置
    Android SDK Android NDK Android Studio 官方下载地址及方式
    学习Android图表绘制
    ActionBar研究(二)
    获取Android版本信息和程序版本号
    Android手机获取通话记录和短信记录
    Android开发之监听或获取手机短信内容【转】
    android 几种发送短信的方法【转】
    android开源框架android-async-http
  • 原文地址:https://www.cnblogs.com/woxbwo/p/11495170.html
Copyright © 2011-2022 走看看