001 为什么要用缓存?缓存使用不当会造成什么后果?

读读Redis的官网,学第一手的资料:Redid官方文档地址

Redis中国-文档网址:Redis中国-文档地址

或者看看书《Redis 深度历险: 核心原理和应用实践》

微博Redis小王子:微博Redis小王子


1、用缓存,主要有两个用途,高性能和高并发。

1.1 高性能

例如一个查询请求,到MySQL数据库中查询花了100ms。现在把数据扔缓存里,一个 key 对应一个 value,下次再有人查,别走 MySQL 耗费 100ms 了,直接从缓存里,通过一个 key 查出来一个 value,2ms 搞定。性能(速度)提升 50 倍。

1.2 高并发

首先,MySQL 单机支撑到 2000QPS 估计就开始报警了。尽管可以做集群支撑更高的QPS,但是MySQL 天生不能很好的支撑高并发。

所以要是你有个系统,高峰期一秒钟过来的请求有 1 万,那一个 MySQL 单机绝对会宕机死掉。你用缓存,单机支撑的 并发量轻松一秒几万十几万,缓存的单机承载并发量是 MySQL 单机的几十倍。

缓存走内存,内存天然支撑高并发。

2、用了缓存之后会有什么不良后果?

常见的缓存问题有以下几个:

2.1 缓存(如Redis),假如宕机了怎么办,如何保证高可用?

2.2 缓存与数据库双写不一致

2.3 缓存雪崩、缓存穿透

2.4  缓存并发竞争(多个客户端并发写一个key)

3、去Redis官网去看看它能干什么

Redis is an open source (BSD licensed), in-memory data structure store used as a database,
 cache, message broker, and streaming engine. Redis provides data structures 
such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps,
 hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, 
Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, 
and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值