Redis01- 基础篇

news2024/11/24 10:37:07

什么是Redis

        与MySQL数据存在磁盘上不同的是,Redis数据以k-v的键值对形式存在内存中,支持持久化。由于存在内存中,其读写速度很快。

Redis为什么那么快

        主要有三点:

  1. 基于内存,读写速度快
  2. IO多路复用、单线程读写
  3. 有高效的数据结构

分布式缓存常见的技术选型方案

        Memcached是分布式缓存刚兴起时常用的,现在基本上都用Redis进行分布式缓存,也有一些公司开发类似Redis的分布式缓存数据库。

Redis和Memcached的区别和共同点

共同点:

  1. 都是基于内存的数据库,一般都用作缓存使用
  2. 都有过期策略
  3. 两者的性能非常高

区别:

  1. Redis支持丰富的数据类型包括List、set、hash等,而Memcached只支持简单的数据类型
  2. Redis支持持久化,内存数据可存储到磁盘,主机重启后可恢复数据,而Memcached没有灾难恢复机制
  3. Redis有惰性删除和定期删除方式,而Memcached只有惰性删除
  4. Redis采用单线程IO多路复用,而Memcache是多线程,非阻塞IO复用
  5. Redis3.0之后就有原生的集群模式,而Memcached没有,需要靠客户端向集群分片中写数据

为什么要用Redis

  1. 速度快:Redis数据存在内存中,读写速度快,可以将一些高频访问的数据存在缓存中,这样速度可以提升几十倍
  2. 高并发:一般MySQL数据库的QPS(即每秒的请求数)为4k,由于Redis处理速度快,因此一部分数据库的数据可以放在缓存中,这样访问的速度提升,QPS可以达到5w+,10w+,这还是单个Redis,集群的更多,从而提升了系统整体的并发
  3. 功能全面: Redis除了用作缓存,还可以用于分布式锁、消息队列、限流、延时队列等       

常见的缓存读写策略

        最常见的是旁路缓存模式(Cache Aside Pattern),以db的结果为准

读:先在cache中读取,读不到就去数据库db中读取,之后db的数据更新到缓存中;

写:先更新数据库db,再删除缓存

        关于写的顺序的解释:如果是先删除缓存,再更新db,若有请求1写数据A,请求2读数据A,请求1先删除了缓存,请求2在缓存中找不到数据A,于是去db中读,然后请求1更新db,有可能导致数据不一致的情况;而先更新数据库db,再删除缓存,也有可能产生数据不一致,就是请求1从db中读数据A,此时缓存中不存在数据A,然后请求2往db里写数据A且缓存中无数据A故不用删除,而请求1更新缓存,因此导致数据不一致。但这种情况出现的概率极低,因为缓存写入的速度快,大多数情况请求1在请求2写数据之前就已经从db中读数据并写入缓存中了,此后请求2来的时候更新db中数据并把缓存中数据A删除,就不会出现数据不一致的情况。

【归根结底,写的顺序的决定性因素是因为缓存本身写的速度快】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用pinyin4j解决中文排序时候多音字问题

1、引入jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version></dependency> 2、工具类 public class SortUtil {private static HanyuPinyinOutputFormat pinyinO…

[米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-02 MAC层程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

SX_c语言字符带空格字符串读写_9

改项目的时候又发现c语言读字符串的一些细节这里做补充其中%[^\n]可以读取带空格的字符串 #include <stdio.h>int main(){char cmd;scanf("%c", &cmd);char time[32] {0};scanf("%s", time);printf("%c\n", cmd);printf("%s&quo…

QT使用腾讯云对象存储SDK报错:`undefined reference to qcloud_cos`

QT使用腾讯云对象存储SDK编译时报错&#xff1a;undefined reference to qcloud_cos 文章目录 QT使用腾讯云对象存储SDK编译时报错&#xff1a;undefined reference to qcloud_cos问题1&#xff1a;在VS中编译cossdk报错LNK1104 无法打开文件“PocoFoundationd.lib”问题2&…

海外媒体发稿:意大利-展新社/意大利金融报的影响力

一.IT WDPP&#xff1a;世界发展新闻社意大利站 世界发展新闻社&#xff08;展新社&#xff09;是全球顶级通讯社之一&#xff0c;其在全球多国设立分社&#xff0c;热门资讯覆盖全球18种主流语言。作为世界发展新闻社的意大利站&#xff0c;IT WDPP以其独特的视角和深度报道&…

工具学习_CONAN_Consuming Packages

1. Build a simple CMake project using Conan 首先创建一个使用最流行的 C 库之一 Zlib 的字符串压缩器应用程序&#xff0c;教程将使用 CMake 构建系统&#xff0c;但需要注意 Conan 适用于任何系统构建方式。 为了完成教程&#xff0c;首先下载对应的项目&#xff1a; git…

大学生助学贷款

大学生助学贷款 文章目录 大学生助学贷款生源地贷款1. 网上申请2. 线下申请 生源地贷款 助学贷款分为生源地贷款和高校助学贷款, 一般情况下都是申请的生源地贷款.第一次贷款, 需要现在网上申请, 申请结束之后, 会有两张表, 贷款申请表和困难认定申请表.注意: 贷款申请表和困难…

pdf转图片要怎么转?6个软件帮助你轻松转换图片格式

pdf转图片要怎么转&#xff1f;6个软件帮助你轻松转换图片格式 将PDF文件转换为图片格式是许多用户的常见需求&#xff0c;尤其是在需要展示、编辑或分享PDF内容时。以下是六款能够帮助你快速、轻松地将PDF转换为图片格式的软件&#xff1a; 迅捷PDF转换器 这是一款非常简单好…

Redis01——Redis简介

目录 NOSQL与SQL的差异 数据结构&#xff1a;结构化 VS 非结构化 数据关联&#xff1a;关系型 VS 非关系型 数据查询&#xff1a;SQL查询 VS 非SQL查询 事务特性&#xff1a;满足事 VS 没有完全满足 Redis 简介 Redis 安装 Redis 数据结构简介 Redis 常用命令&#xff…

论文被Turnitin查出AI率,会受影响吗?

无论是作业或是毕业论文的提交&#xff0c;原创性已成为了硬性标准。因此提交前都会使用Turnitin&#xff08;www.checktoo.com&#xff09;进行论文检测&#xff0c;用来确保其原创性。可当Turnitin报告能显示出论文的AI率时&#xff0c;越来越多学者开始担忧“这会对我的论文…

c++单例实践

C单例实践 在日常开发中&#xff0c;虽然太多的单例调用会让代码的耦合度变高&#xff0c;但是例如日志类这种&#xff0c;单例模式就变得非常有。所以这篇文章为大家介绍static 关键字相关知识以及如何实现自己的C单例类。 static关键字 首先让我们请出今天的主角: static。…

Brave浏览器:开启隐私保护新时代

今天电脑天空要向大家介绍一款专注隐私安全的浏览器——BraveBrowser&#xff0c;它不仅仅是一个浏览工具&#xff0c;更是你在线隐私的守护者&#xff01; BraveBrowser是一款免费且开源的网络浏览器&#xff0c;它的核心优势在于其强大的广告和跟踪器阻止功能。想象一下&…

数据要素流通交易的场景概述

00前言 数据要素作为国家重点发展方向&#xff0c;如何发挥其数据要素价值是目前研究的重点。核心的观点是流动的数据才能产生价值&#xff0c;如果数据并没有开放、共享那么价值一定是有限的。目前&#xff0c;数据流通类型主要包括数据开放、数据共享和数据交易三种。 数据…

【Python学习手册(第四版)】学习笔记16-函数基础

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文主要介绍Python中函数的基本概念&#xff0c;作用域以及参数传递&#xff0c;函数语法以及def和return语句的操作&#xff0c;函数调用表达式的行为&#xff…

AWS DMS遇到 Error : no handler found for uri

问题描述&#xff1a; 当我按照文档[1]配置AWS DMS 目标端为OpenSearch, 并进行数据迁移的时候&#xff0c;我遇到了如下报错&#xff1a; 00015696: 2024-07-31T03:26:57 [TARGET_LOAD ]E: Elasticsearch:FAILED SourceTable:test TargetIndex:test Operation:INSERT_E…

Mysql80主从复制搭建;遇到问题 Slave_IO_Running: Connecting和Slave_SQL_Running以及解决过程

总结主要步骤 1.配置一个提供复制的账号&#xff1b; 创建用户 CREATE USER replication% IDENTIFIED BY your_password; GRANT REPLICATION SLAVE ON *.* TO replication%; FLUSH PRIVILEGES;2.修改配置 选择模式 主库配置&#xff1b; windows的得话是my.ini文件 默认这个目…

Vue项目学习(1)

1、进入cmd命令行——> vue ui ——>等等操作 2、 3、src目录下 4、vue项目的启动 &#xff08;1&#xff09; &#xff08;2&#xff09; 5、如何更改前端vue项目的端口号&#xff1f;——>去vue.config.js里配置应一个对象

云端医疗解决方案:互联网医院系统的云计算架构与实现

随着云计算技术的成熟和普及&#xff0c;医疗行业开始探索云端解决方案&#xff0c;以应对数据存储、计算能力和系统扩展性等方面的挑战。互联网医院系统作为医疗信息化的重要组成部分&#xff0c;通过云计算架构实现了高效、灵活和可扩展的医疗服务。本文将深入探讨互联网医院…

【vulnhub】DC-2靶机

信息收集 靶机扫描 nmap 192.168.93.1/24 端口扫描 网页访问 发现访问不到&#xff0c;根据显示考虑IP未遵循重定向到域名 在本机的C:\Windows\System32\drivers\etc 修改hosts⽂件&#xff0c;添加192.168.93.136 dc-2 再次进行访问&#xff0c;可以访问到 点击flag&#x…

牛客JS题(十七)总成绩排名

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 引用传值深拷贝合理封装 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"utf-8" /></head><body><script type"text/javascript&quo…