Redis从入门到精通(0):Nosql和Redis简介

以Mysql为代表的关系型数据库在一些高并发场景下的表现让人失望,如何解决数据访问的瓶颈,让我们来认识一下Nosql以及Redis。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

高并发场景数据访问慢原因

  • 大量IO操作降低性能
  • 关系型数据使得数据关系复杂,扩展性差,不便于大规模集群

Nosql数据库

针对上面的两个痛点,我们提出了两种解决方案

  • 数据存储在内存中,减少IO
  • 去掉数据间关联,减少复杂度

这种不同于传统关系型数据库的数据库,就叫做NoSql。

NoSql(Not Only Sql),非关系型数据库,是对关系型数据库的一个补充。专门用于海量用户和海量数据前提下的数据处理。

常见的nosql数据库如下:

  • 键值数据库
    通过哈希表去查找,简单容易部署,查询速度快。最常用的Redis
  • 列存储数据库
    应对分布式存储的海量数据。最常用的HBase
  • 文档型数据库
    可以看作是键值数据库的升级版,数据用特定的格式存储,例如JSON。因为允许键值嵌套,查询效率比键值数据库更高。最常用的MongoDB
  • 图形数据库
    使用较少,最常用的是Neo4J

解决方案

nosql配合使用.png

Redis特点

相比其他键值数据库,Redis有下面三个特点

  • Redis支持数据持久化,使用了RDB和AOF机制,重启的时候再次加载
  • Redis不仅支持string数据类型,还支持list,set,zset,hash等数据结构
  • Redis支持数据备份,集群等高可用功能

Redis本身的一些特点

  • 读写速度很快,读110000次/s,写81000次/s
  • 丰富的数据类型,如上所述
  • 单线程,原子性
  • 丰富的特性,例如订阅,通知等等特性

Redis的一些缺点

  • 持久化
    第一种方式是定时快照,每次都写全部数据,量比较大;第二种方式是基于语句追加(AOF),只追踪变化的数据,但是追加的log可能很大。
  • 内存占用高

redis应用场景

  • 为热点数据加速查询,如热点新闻等高访问信息
  • 任务队列,如秒杀,抢票等场景
  • 即时信息查看,例如排行榜,在线好友,视频点赞数量,公交到站时间等
  • 时效性信息控制,例如验证码过期控制等
  • 分布式数据共享,如分布式集群架构中的session分离
  • 消息队列
  • 分布式锁
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值