深入理解Redis概念(精)

Redis:
  是nosql , key-value ,可持久化,分布式,内存,缓存的非关系型数据库

有人问你什么是Redis你就上面这句话,详细解释分为四部分解释:


1.nosql , key-value ,非关系型数据库
  nosql:not only structured query language(不仅仅是支持结构化的查询语言)
  
     这里就要谈到两个概念:
     
     结构化数据非结构化数据
     一类相同特点的数据集合叫结构化数据,例如创建的student表
     海量的数据指的都是非结构化数据,例如:大数据
     
     ------这两类数据化结构对应的数据存储也分为两类------
     
     关系型数据库(oracle,mysql)非关系型数据库(MangoDB,Redis)
     
     关系型数据库存储的都是结构化数据
     
     非关系型数据库存储的可以是结构化数据也可以是非结构化数据
     
     ------非关系型数据库存储非结构化数据是以key-value形式------


2.可持久化,内存
  内存存储数据的缺点:
    1.存的量少(解决方法:采用分布式和海量集群)
    2.容易丢失,如果缓存中的数据由于内存断电丢失,会造成缓存的击穿和雪崩
    一旦出现雪崩,整个系统将会进入瘫痪状态,所以需要一个能支持持久化能力的缓存技术
    (雪崩/缓存击穿的概念:
      Redis在之前占领市场时使用一种性能非常高的分布式缓存技术:memoryCache
      但是这种技术不支持内存数据的持久化,容易出现由于系统故障造成的缓存雪崩
      例如:海量数据的请求访问,双十一,如果数据的访问由于缓存的未命中,也就是这么多数据请求你缓存中没有或者由于内存数据丢失等原因,那么这些请求会涌入数据库,数据库承受不住这么多的请求就会导致集群宕机,海量的请求并不会消失,造成数据库宕机-重启-系统不可用
      所以需要持久化的能力,保证内存数据丢失的时候,集群大部分节点的数据依然可以命中
      memoryCache和Redis对比:
        性能:差不多
        可持久化:Redis支持memoryCache不支持
        缓存的数据结构:Redis非常丰富(String,list,set,zset),memoryCache只支持String
    )

所以如果Redis支持内存数据进行写入磁盘的操作,那么宕机时数据就能恢复,具有容灾能力.


3.缓存
   Redis使用缓存功能解决系统性能问题
   在SSM框架中,我们可以在数据库,持久层,业务层,控制层中都可以加缓存
   
      数据库缓存:利用key-value结构记录缓存内容,同一个sql语句是一个key值,下次相同的执行(查询)语句,就使用缓存中的,不用再去封装resultSet集合,减少了数据磁盘的IO
      
      持久层缓存:减少了连接数据库的次数,减少resultSet封装成对象的过程
      
      控制层和业务层缓存:减少数据的传递次数
    
    我们使用Redis在业务层引入Redis代码实现数据的读写


4.分布式结构
   多节点的Redis集群搭建(数据分片)

(个人学习总结,转载注明出处,如有错误请及时指出,谢谢!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值