认识Redis(一)

1.1 问题现象

(一) 场景

  • 123XX买票,人数过多,造成系统崩溃

  • X宝活动,人数过多,造成系统崩溃

  • X东活动,人数过多,造成系统崩溃

(二) 特征

  • 人数过多
  • 高并发

(三) 造成原因

  • 性能瓶颈:磁盘IO性能低下

关系型数据库存取数据、读取数据的时候是要走磁盘IO的,磁盘本身性能是比较低的

  • 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群

关系型数据库是:表与表之间的关系比较复杂,一个表可能有几个外键,一个外键也可能有多个外键,关系非常复杂,最终非常影响查询的效率,扩展也非常难

(四) 解决思路

  • 降低磁盘IO次数,越低越好

内存思想:不使用磁盘,将数据放到内存里

  • 去除数据库之间的关系,越简单越好

去除数据库之间的关系,只存储数据

结合两个特征:出现了一个新的概念:NoSQL

1.2 NoSQL

(一) 概念

NoSQL:即 Not-Only SQL(泛指非关系型数据库),作为关系型数据库的补充。非SQL的存储方式,就是所谓的NoSQL。

作用:应对基于海量用户和海量数据前提下的数据处理问题

(二) 特征

  • 可扩容,可伸缩

SQL数据关系复杂,扩容难度高,NoSQL不存关系,扩容就简单一些。

  • 大数据量下的高性能

包数据非常多的时候,它的性能高,因为不走磁盘IO,走内存,性能肯定要比磁盘IO的性能快一些。

  • 灵活的数据模型、高可用

它设计了自己的一些数据存储格式,这样能保证效率上来说是比较高的,可用性高

(三) 常见的NoSQL数据库

目前市面上常见的NoSQL产品:Redis、MemCache、HBase、MongoDB

1.3 Redis概念

(一) 概念

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

(二) 特征

  • 数据间没有必然的关联关系
  • 内部采用单线程机制进行工作
  • 高性能

官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。

  • 多数据类型支持

字符串类型:string

列表类型: list

散列类型: hash

集合类型: set

有序集合类型:zset/sorted_set

  • 支持持久化

可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用

  • 支持数据备份,可以进行数据灾难恢复

即master-slave模式的数据备份 参考:master-slave模式

  • 原子

Redis的所有操作都是原子性的,意思是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来(参考:MULTI和EXEC指令

(三) Redis的应用场景

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

**

有问题欢迎指出,有问题说明我记错了

**

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yizhi-w

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

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

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

打赏作者

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

抵扣说明:

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

余额充值