首页 > 数据库 >00Redis介绍

00Redis介绍

时间:2023-11-20 15:22:04浏览次数:36  
标签:缓存 模型 Redis 介绍 00Redis 多线程 数据库 客户端

1.1Redis 简介

Redis,Remote Dictionary Server,远程字典服务,由意大利人 Salvatore Sanfilippo(又名 Antirez)开发,是一个使用 ANSI C 语言编写、支持网络、 可基于内存亦可持久化的日志型、NoSQL 开源内存数据库,其提供多种语 言的 API。

Redis 之所以称之为字典服务,是因为 Redis 是一个 key-value 存储系统。支持存储的 value 类型很多,包括 String(字符串)、List(链表)、Set(集合)、Zset(sorted set --有序集合)和 Hash(哈 希类型)等。

1.1.1 NoSQL

NoSQL(“non-relational”, “Not Only SQL”),泛指非关系型的数据库。随着互联网 web2.0 网站的兴起,传统的关系数据库在处理 web2.0 网站,特别是超大规模和高并发的 SNS 类型 的 web2.0 纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据 库则由于其本身的特点得到了非常迅速的发展。NoSQL 数据库的产生就是为了解决大规模数 据集合多重数据种类带来的挑战,特别是大数据应用难题。

(1) 键值存储数据库

就像 Map 一样的 key-value 对。典型代表就是 Redis。

(2) 列存储数据库

关系型数据库是典型的行存储数据库。其存在的问题是,按行存储的数据在物理层面占 用的是连续存储空间,不适合海量数据存储。而按列存储则可实现分布式存储,适合海量存 储。典型代表是 HBase

(3) 文档型数据库

其是 NoSQL 与关系型数据的结合,最像关系型数据库的 NoSQL。典型代表是 MongoDB。

(4) 图形(Graph)数据库

用于存放一个节点关系的数据库,例如描述不同人间的关系。典型代表是 Neo4J。

1.2Redis 的用途

Redis 在生产中使用最多的场景就是做数据缓存。即客户端从 DBMS 中查询出的数据首 先写入到 Redis 中,后续无论哪个客户端再需要访问该数据,直接读取 Redis 中的即可,不 仅减小了 RT,而且降低了 DBMS 的压力。 根据 Redis 缓存的数据与 DBMS 中数据的同步性划分,缓存一般可划分为两类:实时同 步缓存,与阶段性同步缓存。 实时同步缓存是指,DBMS 中数据更新后,Redis 缓存中的存放的相关数据会被立即清 除,以促使再有对该数据的访问请求到来时,必须先从 DBMS 中查询获取到最新数据,然后 再写入到 Redis。 阶段性同步缓存是指,Redis 缓存中的数据允许在一段时间内与 DBMS 中的数据不完全 一致。而这个时间段就是这个缓存数据的过期时间。

1.3Redis 特性

性能极高

简单稳定

持久化

高可用集群

丰富的数据类型

强大的功能

客户端语言广泛

支持ACL权限控制

支持多线程io模型

1.4Redis 的 IO 模型

Redis 客户端提交的各种请求是如何最终被 Redis 处理的?Redis 处理客户端请求所采用 的处理架构,称为 Redis 的 IO 模型。不同版本的 Redis 采用的 IO 模型是不同的。

1.4.1 单线程模型

对于 Redis 3.0 及其以前版本,Redis 的 IO 模型采用的是纯粹的单线程模型。即所有客户 端的请求全部由一个线程处理。

1.4.2 混合线程模型

从 Redis 4.0 版本开始,Redis 中就开始加入了多线程元素。处理客户端请求的仍是单线 程模型,但对于一些比较耗时但又不影响对客户端的响应的操作,就由后台其它线程来处理。 例如,持久化、对 AOF 的 rewrite、对失效连接的清理等。

1.4.3 多线程模型

Redis 6.0 版本,才是真正意义上的多线程模型。因为其对于客户端请求的处理采用的是 多线程模型

1.4.4 优缺点总结
(1) 单线程模型

优点:可维护性高,性能高。不存在并发读写情况,所以也就不存在执行顺序的不确定 性,不存在线程切换开销,不存在死锁问题,不存在为了数据安全而进行的加锁/解锁 开销。

缺点:性能会受到影响,且由于单线程只能使用一个处理器,所以会形成处理器浪费。

(2) 多线程模型

优点:其结合了多线程与单线程的优点,避开了它们的所有不足

缺点:该模型没有显示不足。如果非要找其不足的话就是,其并非是一个真正意义上的 “多线程”,因为真正处理“任务”的线程仍是单线程。所以,其对性能也是有些影响的

标签:缓存,模型,Redis,介绍,00Redis,多线程,数据库,客户端
From: https://www.cnblogs.com/xfg123/p/17843734.html

相关文章

  • Excel中最牛的Index和match函数介绍
    当谈到Excel中最强大的函数时,INDEX和MATCH往往会被提及。它们经常一起使用,可以用来查找和返回数据表中的特定数值或信息。下面是对这两个函数的详细介绍:INDEX函数:INDEX函数的作用是返回一个数组或区域中的特定单元格的值。其语法如下:```excelINDEX(array,row_num,[column_......
  • .NET 8 Video教程介绍(开篇)
    教程简介本文将简单描述视频网站教程,视频网站是一个类似于腾讯视频一样的网站,视频资源用户自己上传,然后提供友好的界面查看视频和搜索视频,并且提供管理页面对于视频进行管理,我们将使用Blazor作为前端,并且由MasaFramework作为后端框架,一般情况下我们需要做简单的权限管理,对于用户......
  • Linux三剑客介绍——grep
    在Linux系统中,有三个非常常用的文本处理命令:grep,awk,sed。使用这三个命令可以实现非常“炫酷”的文本操作。这篇博文就带大家一起来认识这三个命令中的grep命令。1.grep    grep命令用来对Linux中的文本进行匹配。$echo-e"thisisaword\nnextlin......
  • 《PC Assembly Language》笔记——第一章-介绍
    《PCAssemblyLanguage》PaulA.Carter第1章-介绍Introduction1.2ComputerOrganization1.2.1内存(Memory)单位大小word2bytesdoubleword4bytesquadword8bytesparagraph16bytes1.2.380x86CPU家族实模式程序可以访问任何内存地址(甚至是......
  • 内存安全问题之 use-after-free 漏洞的介绍
    计算机安全领域中的"use-after-free"漏洞是一种常见的内存安全问题。该漏洞类型源自于程序错误,通常发生在应用程序或操作系统中。"Use-after-free"漏洞指的是在释放(free)了某块内存后,程序继续使用了已释放的内存区域,可能导致严重的安全问题。这种漏洞对计算机系统和用户数据构成严......
  • 关于内存芯片的电流消耗机制的介绍
    内存芯片的电能消耗机制是一个复杂而精密的系统,受到多种因素的影响。在理解内存芯片的电能消耗机制之前,我们需要了解内存芯片的基本结构和工作原理。内存芯片的基本结构:内存芯片通常由存储单元组成,每个存储单元用于存储一个数据位。存储单元的排列方式可以是行和列的矩阵结构,其......
  • DevOps 岗位的工作内容和技能需求介绍
    DevOps是一个专注于改善软件开发和运维团队之间协作的理念,目标是更快、更可靠地构建、测试和发布软件。DevOps集开发(Dev)和运维(Ops)两个部分的功能于一身,同时也包含了一些其他的角色,如测试、安全和系统架构等。在DevOps的工作内容中,首先我们需要理解,DevOps是一个跨职能的角色,......
  • 自我介绍
    大家好!我是一名大一的新生,我对编程有着浓厚的兴趣,并一直在努力学习和探索。我希望通过这个博客,与大家分享我的所学所思,以及我在编程方面的经验和见解。我也希望能够借此机会,结交更多志同道合的朋友,一起探讨学习。除了编程,我还喜欢搞一些软件的开发。我相信,生活应该是多姿多彩的,......
  • 23届二本Java选手的自我介绍
    首先自我介绍,本人湖南二本学历,23年应届生,计算机科班。从大三开始系统学习Java知识,在去年历经过找实习时候的无人搭理,秋招互联网寒冬,见过很多公司一本学历点击就送,二本学历直接挂简历的,春招见过同学BOSS几千个招呼却约不到几场面试的,见到了同班10个Java方向的同学到头来只剩我一人还......
  • path常用属性和方法介绍
    1path.toString()  当前路径所对应的源代码 constvisitor={VariableDeclaration(path){console.log(path.toString());//当前路径所对应的源代码},}2.path.isXXX()  判断path是什么typeif(path.isStringLiteral()){//dosomethin......