Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)

一、Redis是什么

Redis 是一种基于内存的数据库 ,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景

Redis 提供了多种数据类型来支持不同的业务场景,比如String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。

二、Redis与Memcached的区别

  1. Redis 支持的数据类型更丰富(String、Hash、List、Set、ZSet),而 Memcached 只支持最简单的 key-value 数据类型;
  2. Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而 Memcached 没有持久化功能,数据全部存在内存之中,Memcached 重启或者挂掉后,数据就没了;
  3. Redis 原生支持集群模式,Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;
  4. Redis 支持发布订阅模型、Lua 脚本、事务等功能,而 Memcached 不支持;

数据类型、持久化、网络IO、集群模式、是否支持事务/发布订阅模型来看区别

三、为什么用Redis作为MySQL的缓存

1、Redis 具备高性能(内存数据库)

假如用户第一次访问 MySQL 中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据缓存在 Redis 中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了,操作 Redis 缓存就是直接操作内存,所以速度相当快。

2、 Redis 具备高并发(QPS多)

单台设备的 Redis 的 QPS(Query Per Second,每秒钟处理完请求的次数) 是 MySQL 的 10 倍,Redis 单机的 QPS 能轻松破 10w,而 MySQL 单机的 QPS 很难破 1w。

所以,直接访问 Redis 能够承受的请求是远远大于直接访问 MySQL 的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。

四、Redis为什么这么快

▪ 使用内存存储,没有磁盘IO的开销

▪ 单线程处理请求,避免线程切换和锁资源的开销

▪ 使用IO多路复用技术,使用epoll

▪ 数据结构丰富,可以直接应用的优化数据

▪ 冷热数据分离,热数据在内存中,冷数据在磁盘

相关推荐
岁岁种桃花儿6 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
jiunian_cn8 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
Exquisite.9 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
踩坑小念10 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶11 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok11 小时前
MySQL的常用数据类型
数据库·mysql
J_liaty12 小时前
Redis 超详细入门教程:从零基础到实战精通
数据库·redis·缓存
夹锌饼干13 小时前
mysql死锁排查流程--(处理mysql阻塞问题)
java·mysql
无限码力13 小时前
华为OD技术面真题 - Mysql相关 - 4
mysql·华为od·华为od技术面真题·华为od技术面八股·华为od技术面八股文·华为od技术面mysql相关
難釋懷13 小时前
优惠卷秒杀集群环境下的并发问题
redis·缓存