首页 > 数据库 >Redis各个方面入门详解

Redis各个方面入门详解

时间:2024-04-05 23:33:22浏览次数:27  
标签:AOF 缓存 入门 过期 Redis 命令 详解 数据

目录

一、Redis介绍

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

三、Redis 和 Memcached 的区别和共同点

四、缓存数据的处理流程

五、Redis作为缓存的好处

六、Redis 常见数据结构以及使用场景

七、Redis单线程模型

八、Redis 给缓存数据设置过期时间

九、Redis判断数据过期的原理

十、过期的数据的删除策略

十一、Redis 内存淘汰机制

十二、Redis 持久化机制

        RDB

        优点:

        缺点:

        AOF

        优点:

        缺点:

        RDB和AOF的对比

十三、事务


一、Redis介绍

        简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。

        另外,Redis 除了做缓存之外,Redis 也经常用来做分布式锁,甚至是消息队列。

        Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

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

        分布式缓存的话,使用的比较多的主要是 Memcached 和 Redis。不过,现在基本没有看过还有项目使用 Memcached 来做缓存,都是直接用 Redis。

        Memcached 是分布式缓存最开始兴起的那会,比较常用的。后来,随着 Redis 的发展,大家慢慢都转而使用更加强大的 Redis 了。

        分布式缓存主要解决的是单机缓存的容量受服务器限制并且无法保存通用的信息。因为,本地缓存只在当前服务里有效,比如如果你部署了两个相同的服务,他们两者之间的缓存数据是无法共同的。

三、Redis 和 Memcached 的区别和共同点

        现在公司一般都是用 Redis 来实现缓存,而且 Redis 自身也越来越强大了!不过,了解 Redis 和 Memcached 的区别和共同点,有助于我们在做相应的技术选型的时候,能够做到有理有据!

共同点 :

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

区别 :

  1. Redis 支持更丰富的数据类型(支持更复杂的应用场景)。Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。Memcached 只支持最简单的 k/v 数据类型。
  2. Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而 Memecache 把数据全部存在内存之中。
  3. Redis 有灾难恢复机制。因为可以把缓存中的数据持久化到磁盘上。
  4. Redis 在服务器内存使用完之后,可以将不用的数据放到磁盘上。但是,Memcached 在服务器内存使用完之后,就会直接报异常。
  5. Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但是 Redis 目前是原生支持 cluster 模式的.
  6. Memcached 是多线程,非阻塞 IO 复用的网络模型;Redis 使用单线程的多路 IO 复用模型。(Redis 6.0 引入了多线程 IO )
  7. Redis 支持发布订阅模型、Lua 脚本、事务等功能,而 Memcached 不支持。并且,Redis 支持更多的编程语言。
  8. Memcached过期数据的删除策略只用了惰性删除,而 Redis 同时使用了惰性删除与定期删除。

        相信看了上面的对比之后,我们已经没有什么理由可以选择使用 Memcached 来作为自己项目的分布式缓存了。

四、缓存数据的处理流程

简单来说就是:

  1. 如果用户请求的数据在缓存中就直接返回。
  2. 缓存中不存在的话就看数据库中是否存在。
  3. 数据库中存在的话就更新缓存中的数据。
  4. 数据库中不存在的话就返回空数据。

五、Redis作为缓存的好处

        简单,来说使用缓存主要是为了提升用户体验以及应对更多的用户。

        下面我们主要从“高性能”和“高并发”这两点来看待这个问题。

        高性能 :

        对照上面

标签:AOF,缓存,入门,过期,Redis,命令,详解,数据
From: https://blog.csdn.net/qq_62525547/article/details/137394218

相关文章

  • docker的安装及入门指令
    目录一、将docker安装到云服务器步骤1.更新系统yum版本2.安装所需依赖3.添加docker仓库设置(使用的是阿里云)4.安装docker引擎5.启动docker并开启自动启动6.检查是否安装成功,成功会显示相应版本,否则安装失败二、docker常用命令1.从docker镜像仓库搜索所有与mysql相关......
  • 【c语言】自定义类型:联合体(公用体)【详解】
    联合体联合体类型的声明像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共用体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。......
  • 【爬虫】项目篇-爬取豆瓣电影周榜Top10,保存至Redis
    写法一:编写两个爬虫程序文件:爬虫1将豆瓣一周口碑榜的电影url添加到redis中名为movie_url的列表中(注意避免多次运行导致重复的问题);爬虫2从movie_url中读出网址,爬取每一部电影的导演、主演、类型、制片国家/地区、语言、上映日期、片长,并将它们保存到redis的hash表(自行命名)中。d......
  • Linux 用户、用户组 useradd、groupadd等详解
    ......
  • html入门基础
    html主要框架:<html>        <!--头部-->        <head>          <title>标题</title>        </head>        <!--主体-->        <body>        </body></html>一、标签1.加粗<strong></strong> ......
  • PS从入门到精通视频各类教程整理全集,包含素材、作业等(5)
    PS从入门到精通视频各类教程整理全集,包含素材、作业等最新PS以及插件合集,可在我以往文章中找到由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新初寒调色案例及练习图等文件https://www.alipan.com/s/k5bdZJrnacS提取码:s1r6点击链接保存,或者复......
  • PS从入门到精通视频各类教程整理全集,包含素材、作业等(6)
    PS从入门到精通视频各类教程整理全集,包含素材、作业等最新PS以及插件合集,可在我以往文章中找到由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新橘子老师章节9-17图像的调色等文件https://www.alipan.com/s/6xF4ubiQDAD提取码:fz86点击链接保存......
  • Autosar-BswM 配置详解(免费)-2
    上表配置内容的意思是,BswM初始化过程中会先走到“BswM_AR_InitBlockTwo”这个步骤,如果条件满足的话,会执行这个步骤所有的动作。执行完后“BswM_AR_InitBlockTwo”,会切换到“BswM_AR_ReadAllComplete”这个步骤,如果条件满足的话,执行完该步骤的所有动作。之后再次切换到run的......
  • 疯狂Python讲义学习笔记——第2章变量和简单类型2.4字符串入门
    思维导图          字符串的意思是“一串字符”,比如"Hello,Python"是一个字符串,"Howdoyoudo?"也是一个字符串。Python要求字符串必须使用引号括起来,可使用单引号或双引号,只要两边的引号能配对即可。4.1字符串和转义字符        字符串的内容几乎可......
  • [C++][C++11][智能指针]分析详解 + 代码模拟
    目录0.智能指针三要素:)1.为什么需要智能指针?2.内存泄漏1.什么是内存泄漏?内存泄漏的危害?2.内存泄漏分类(了解)3.如何检测内存泄漏4.如何避免内存泄漏3.RAII4.智能指针原理5.auto_ptr(失败设计)6.unique_ptr7.shared_ptr1.实现原理:通过引用计数的方式来实现多个shared_ptr......