Redis
2020-07-21 19:33:57 0 举报
AI智能生成
redis学习
作者其他创作
大纲/内容
介绍
Redis(Remote Dictionary Server ),即远程字典服务,是一个
开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化
的日志型、Key-Value数据库,并提供多种语言的API。
从2010年3月15日起,Redis的开发工作由VMware主持。
开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化
的日志型、Key-Value数据库,并提供多种语言的API。
从2010年3月15日起,Redis的开发工作由VMware主持。
特点
内存数据库
内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
多种存储结构
String
使用场景:计数器,点击量,阅读量
List
使用场景:电商购物车里面:添加、删除商品,计算商品总数
Hash
使用场景:计数器,点击量,阅读量
Set
使用场景:消息流
Zset
使用场景:排行榜
支撑数据备份
使用master-slave(主-从)模式,master会备份倒slave
支持事物
这个功能因为redis本身没有事物回滚,很鸡肋,几乎不使用。
优势
性能极高
Redis能读的速度是110000次/s,写的速度是81000次/s
数据结构丰富
原子性
Redis的所有操作都是原子性的
存在的问题及解决方案
缓存穿透
key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。
比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
解决办法
缓存空对象
布隆过滤器
缓存失效
key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端数据库
加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端数据库压垮。
加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端数据库压垮。
解决办法
缓存空对象
布隆过滤器
缓存雪崩
由于缓存层承载着大量请求,有效的保护了存储层,但是如果缓存层由于某些原因整体不能提供服务,于是所有的请
求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。
求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。
解决办法
缓存空对象
布隆过滤器
安装使用
0 条评论
下一页