说说NoSQL中的Redis

NoSQL

我们知道,Redis是一种非关系型数据库。今天小编来简单说说关系型数据库和非关系型数据库,为Redis的学习做一个指引。

概念
像Mysql、Oracle、SQL Server这些依据关系模型来创建的数据库叫做关系型数据库。
在这里插入图片描述
除此之外,还有一种数据库叫做非关系型数据库(NoSQL)。
关系型数据库和非关系型数据库的一个显著区别是:关系型数据库中的数据存储在磁盘上,存取效率较低,但是安全;非关系型数据库中的数据是被存储在内存中的,存取效率高,但是一旦突然断电,数据就会丢失,所以不安全。

4种类型

列模型
就像关系型数据库是以一行作为一个记录,列模型数据库是以一列作为一个记录。举例:Hbase。
在这里插入图片描述

键值对模型(key-value)
存储的数据是一个个“键值对”。举例:Redis、MemcacheDB。
在这里插入图片描述

文档存储模型
以一个个文档来存储数据,跟“键值对”类似。举例:MongoDB。
在这里插入图片描述

图形数据模型
当实体之间的关系太过于复杂时,可以选择这个。举例:Neo4J
在这里插入图片描述

what?

Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
在这里插入图片描述
特点
(1)数据模型为key-value。
(2)可持久化。
我们知道,非关系型数据库因为其将数据存储在内存中的性质,极易造成数据丢失。为了解决这个问题,Redis会自动将数据备份到硬盘中,当断点情况恢复后,能自动恢复数据。
(3)单线程工作模式,采用的是非阻塞I/O多路复用机制
(4)支持主从模式,所以能配置集群

why?

(1)针对不经常变动,且如果去数据库中查询会耗时久的热数据,我们可以放入缓存,这样,下次请求响应时就会快很多。有人说,Redis是最好的缓存数据库。
(2)在大并发的情况下,如果一时间很多请求同时访问数据库,会造成数据库瘫痪,解决办法是现在Redis中操作,等业务结束后(比如秒杀的东西被抢购完了),再将数据分批次存入数据库中。

how?

应用场景
(1)缓存热数据
(2)消息队列
(3)排行榜、计数器
(5)发布订阅

5种数据类型和使用场景
在这里插入图片描述

和数据库的协同工作流程

  • 读取数据时:先去redis中找,如果没有,去数据库中找,然后将结果返回并存入redis中一份
  • 写入数据时:先写入数据库,然后再同步到redis中

要注意的地方
(1)Redis和数据库双写一致性问题
(2)缓存雪崩
(3)缓存穿透
(4)redis的并发竞争问题

和Rabbitmq的比较
同样是能提供消息队列服务,两者的适用场景不同:
Redis的特点是轻量级、高并发、延迟敏感,所以适用于即时数据分析,秒杀计数器,缓存等。
Rabbitmq的特点是重量级、高并发、异步,所以适用于批量数据异步处理、并行任务串行化、高负载任务的负载均衡等。

小结

这只是对Redis的理论性知识进行了总结,至于命令的使用等,还需日后的深化和总结。
参考博客:
https://blog.csdn.net/qq_34116402/article/details/79578187
https://blog.csdn.net/jordandandan/article/details/68946839

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡夫卡的熊kfk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值