首页 > 数据库 >Redis知识

Redis知识

时间:2022-11-24 03:33:06浏览次数:34  
标签:缓存 数据 知识 Redis 内存 MySQL Memcached

 

  • Redis是什么

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

 

  • Redis & Memcached

相同点:

  1. 基于内存的数据库,一般都用来当做缓存使用。
  2. 有过期策略。
  3. 性能都非常高。

不同点:

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

 

  • 为什么用 Redis 作为 MySQL 的缓存?

Redis 具备「高性能」和「高并发」两种特性。

1、Redis 具备高性能

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

如果 MySQL 中的对应数据改变的之后,同步改变 Redis 缓存中相应的数据即可。

2、 Redis 具备高并发

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

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

标签:缓存,数据,知识,Redis,内存,MySQL,Memcached
From: https://www.cnblogs.com/SATORAREPOTENETOPERAROTAS/p/16920695.html

相关文章

  • 处理器基础知识
    一,什么是处理器二,指令集基础什么是ISAISA功能三,CPU设计与实现整数范围时钟频率指令周期(Instructioncycle)指令流水线(Instructionpipeline)指令并行(Instru......
  • redis 缓存设计之穿透击穿雪崩
    缓存穿透缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,通常处于容错的考虑,如果从存储层查不到数据则不写入缓冲层缓存穿透将导致不存在的数据每次请求......
  • redis通过lua脚本------实现原子性操作(PHP代码实现)
    背景一直都知道redis里可以执行lua脚本,但是以前一直搞不懂redis为啥要这么搞,今天看了人家一篇博文,说秒杀场景出现商品超卖,解决方案是利用lua脚本来保证操作的原子性自己......
  • Redis后端面试题
    目录简要说一下什么是Redis?为什么要⽤Redis(缓存)?为什么要⽤Redis⽽不⽤map/guava做缓存?Redis与Memcached的区别Redis的应⽤场景redis为什么那么快redis有哪些数......
  • Docker基础知识 (22) - Kubernetes(五) | 在 K8s 集群上部署 NFS 实现共享存储 (2)
    在“Docker基础知识(21)-Kubernetes(四)|在K8s集群上部署NFS实现共享存储(1)”里我们演示如何在K8s集群中部署NFS和创建静态PV/PVC,本文将继续演示如何创......
  • redis启动客户端
    启动Redis启动方式:①前台启动redis-server②后台启动redis-server&最好使用后台启动,不占用命令终端.③根据配置文件启动启动命令配置文件&启动redis服务时,指......
  • Docker基础知识 (21) - Kubernetes(四) | 在 K8s 集群上部署 NFS 实现共享存储 (1)
    在“Docker基础知识(20)-Kubernetes(三)|在K8s集群上部署Nginx”里部署的Nginx,通过存储卷(volumes)挂载到master的/home/k8s/nginx-test/nginx目录下的子目录......
  • 知识库
    1、springSpring发展史:https://mp.weixin.qq.com/s/Obs6CA6GQC36VGp_C6AEqwSpring框架:https://mp.weixin.qq.com/s/wXkgudY0ThIRLFxUmohJoghttps://mp.weixin.qq.com/......
  • 【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
    问题描述在AzureRedis服务中,如何实现只允许AzureAppService访问呢? 问题解答AzureRedis开启防火墙的功能,并在防火墙中添加上AppService的出口IP地址即可。两步......
  • Redis 菜鸟进阶
    Redis菜鸟进阶背景最近产品一直要优化性能,加强高可用.有一个课题是Redis高可用与性能调优.我这边其实获取到的内容很有限.最近济南疫情严重,自己锁骨骨折.然后通......