认识NoSQL和Redis

文章目录

    • 一、NoSQL
    • 二、Redis
      • 1. Redis简介
      • 2. Redis的应用
      • 3. Redis基本命令

一、NoSQL

认识NoSQL和Redis_第1张图片

NoSQL:Not-Only SQL,泛指非关系型数据库,作为关系型数据库的补充,真正的数据还得是存在硬盘上的关系型数据库,非关系型数据库一般不会用,一般会用在海量用户和高并发的场景下

NoSQL特征:可扩容、可伸缩、大数据量下高性能、灵活的数据类型、高可用

常见的NoSQL数据库

Memcache

  • 很早出现的 NoSql 数据库
  • 数据都存储在内存中,一般不持久化 (不能存储在硬盘或者文件,只能存储在内存,关机了内存的数据就不存在了)
  • 支持简单的 key-value 模式,支持类型单一
  • 一般是作为缓存数据库辅助持久化的数据库(一般和MySQL等关系型数据库一起使用)

Redis

  • 几乎覆盖了 Memcached 的绝大部分功能
  • 数据都在内存中,支持持久化(数据可以存储到硬盘),主要用作备份恢复
  • 除了支持简单的 key-value 模式,还支持多种数据结构 的存储,比如 list、set、hash、zset 等。
  • 一般是作为缓存数据库辅助持久化的数据库(一般和MySQL等关系型数据库一起使用)

MongoDB

  • 高性能、开源、模式自由(schema free)的文档型数据库 (存储结构和json类似,里面存储的数据形式多样,结构更加复杂)
  • 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
  • 虽然是 key-value 模 式 , 但 是 对 value ( 尤 其 是 json)提供了丰富的查询功能
  • 支持二进制数据及大型对象
  • 可以根据数据的特点替代 RDBMS ,成为独立的数据库。或者配合 RDBMS,存储特定的数据。

认识NoSQL和Redis_第2张图片
集群数据库服务器通常以如下形式对外提供数据服务

认识NoSQL和Redis_第3张图片

基本信息存放在MySQL数据库,文本类信息存放在MongoDB,图片信息存放在FastDFS,搜索关键字存放在Slor,热点信息存放在Redis,这些数据库服务器一起对外提供服务

二、Redis

1. Redis简介

Redis(REmote DIctinary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库

特征:

  • 数据间没有必然的关联关系:由于MySQL数据间的关联性太强,导致数据读取缓慢,NoSQL数据库要做的就是断开数据的关联关系
  • 内部采用单线程机制进行工作:单线程模型,原子性比较强,可以保证数据安全,采用IO多路复用的方式也能保证高性能
  • 高性能:官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
  • 多数据类型支持:string(字符串类型)、list(列表类型)、hash(散列类型)、set(集合类型)、sorted_set(有序集合类型)
  • 持久化支持(非Redis主要功能):可以进行数据灾难恢复,避免突发情况导致数据丢失

2. Redis的应用

  • 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
  • 任务队列,如秒杀、抢购、购票排队等
  • 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
  • 时效性信息控制,如验证码控制、QQ群投票控制等
  • 分布式数据共享,如分布式集群架构中的 session 分离
  • 消息队列
  • 分布式锁

redis为什么是单线程及为什么快的总结

  1. Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。
  2. Redis使用的是非阻塞IO、IO多路复用,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,减少了线程切换时上下文的切换和竞争。
  3. Redis采用了单线程的模型,保证了每个操作的原子性,也减少了线程的上下文切换和竞争。
  4. Redis避免了多线程的锁的消耗。
  5. Redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。

windows版Redis程序说明

认识NoSQL和Redis_第4张图片

3. Redis基本命令

命令行模式工具使用:功能性命令、清除屏幕信息、帮助信息查阅、退出指令

信息添加

set key value

信息查询:根据key查询对应的value,如果不存在,返回空(null)

get key

认识NoSQL和Redis_第5张图片

删除数据

del key

认识NoSQL和Redis_第6张图片

清除屏幕信息

clear

帮助命令:获取命令帮助文档,获取组中所有命令信息名称

help 命令名称

认识NoSQL和Redis_第7张图片

认识NoSQL和Redis_第8张图片

退出客户端

quit
exit

你可能感兴趣的:(Redis,redis,数据库,nosql)