Redis的特性以及使用场景

分布式发展历程参考 陈佬 http://t.csdnimg.cn/yYtWK 

介绍redis

Redis(Remote Dictionary Server是一个基于客户端-服务器架构的在内存中存储数据中间件,属于NoSQL的一种。它可以用作数据库、缓存/会话存储以及消息队列

作为一种内存数据库,Redis将数据存储在内存中,因此能够实现非常快速的读写操作。与磁盘存储相比,内存存储能够大幅提升数据的访问速度。这使得Redis成为一个优秀的缓存系统,能够将频繁访问的数据存储在内存中,从而提高读取性能。数据库服务器中的冷热分离(二八原则,对于经常被查询的数据,可以将其存储在Redis中,利用Redis快速的读取和写入能力,以提升数据的访问速度。)就可用redis实现

此外,Redis还提供了丰富的数据结构支持,包括字符串、哈希表、列表、集合和有序集合等,使得它不仅可以简单地存储键值对,还可以处理复杂的数据结构,满足各种不同的需求。

在分布式架构中,Redis也具备主从复制、Sentinel机制和Cluster集群等特性,以确保高可用性和扩展性。


 * 介绍NoSQL

MySQL和NoSQL是两种不同类型的数据库系统,它们各自具有一些特点和适用场景。

  1. MySQL

    • 关系型数据库管理系统(RDBMS),采用结构化数据表来存储数据,支持 SQL 查询语言。
    • 适用于需要复杂事务处理、强一致性和丰富的查询功能的应用场景。
    • 支持ACID(原子性、一致性、隔离性、持久性)事务特性,确保数据的完整性和一致性。
    • 具有成熟的数据建模能力,支持复杂的关联查询、多表连接等操作。
    • 适用于需要严格数据一致性和复杂数据分析的企业级应用。
  2. NoSQL

    • 非关系型数据库系统,使用灵活的数据模型,可以存储半结构化或非结构化数据。
    • 适用于大规模分布式系统、高并发读写、数据量巨大的场景。
    • 分为多种类型,包括键值存储、文档型数据库、列存储数据库和图形数据库等,每种类型的NoSQL数据库都有自己的优势。
    • 通常以牺牲一部分ACID特性为代价,追求高可用性、横向扩展和灵活的数据模型。
    • 更适合于需要高性能、大容量存储和灵活的数据模型的应用,例如日志记录、实时分析、内容管理等场景。

在选择数据库系统时,需要根据具体的应用需求来进行权衡。如果应用需要复杂的事务处理和强一致性,以及复杂的查询需求,那么MySQL等关系型数据库可能是更好的选择。而对于需要高性能、大规模存储和分布式部署的场景,NoSQL数据库可能更为合适。

此外,还有一种趋势是将关系型数据库和NoSQL数据库结合使用,即所谓的“多模型数据库”,以充分发挥各自的优势,满足不同的业务需求。

redis特点

官网https://redis.io/

以下是Redis的一些主要特点:

  1. 内存存储:Redis将数据存储在内存中,因此读写操作非常快速(以实现高速的读写操作(还引入了IO多路复用,一个线程管理多个socket)。这使得Redis能够实现非常低延迟和高吞吐量的数据访问此外,Redis也支持将数据异步地持久化到磁盘上,以便在重启后能够恢复数据。
  2. 键值存储:Redis是一种键值存储系统,每个键都关联着一个值,这个值可以是字符串、哈希、列表、集合等多种数据结构。通过键快速访问和操作对应的值
  3. 数据结构支持:除了基本的字符串键值对之外,Redis还支持丰富的数据结构,如列表、集合、有序集合、哈希表等,这使得Redis可以应对各种不同的需求。
  4. 可编程性:可直接通过简单的交互式命令进行操作,也可通过脚本的方式,批量执行操作
  5. 可扩展性:Redis提供了一组API,在原有的功能上进行扩展(以支持更多的数据结构,命令),通过几个语言编写Redis扩展,本质上是一个动态链接库
  6. 持久化与备份:除了将数据存储在内存中,Redis还支持将数据持久化到硬盘上,以防止数据丢失
  7. 分布式(支持集群):Redis Cluster可以让多个Redis实例组成集群,从而提供了分布式的能力。
  8. 高可用性:Redis提供了主从复制(Master-Slave Replication)和哨兵(Sentinel)机制来确保高可用性和故障转移。以提供数据的高可用性和容错能力。通过配置主从复制和哨兵节点,Redis可以实现自动故障恢复和故障转移

由于其快速、灵活和丰富的功能,Redis被广泛应用于缓存、会话存储、消息队列、实时排行榜、发布/订阅系统等方面。

redis使用场景 

 

  1. 实时数据存储:Redis的快速读写能力和多功能的数据结构使其非常适合用于实时数据存储。例如,在在线游戏中,可以使用Redis存储玩家的实时位置、状态等数据;在金融交易系统中,可以使用Redis存储实时的市场行情数据;

  2. 缓存和会话存储:Redis作为缓存的应用非常广泛。它可以存储经常被查询的数据,如数据库查询结果、计算结果、API调用的响应等,从而大幅提高系统的性能和响应速度。此外,Redis还被广泛用作会话存储,用于存储用户登录状态、购物车信息等会话相关的数据。

  3. 消息队列(生产者-消费者模型,优势:解耦合;削峰填谷):Redis的流数据类型支持高速数据引入和消息传递,因此在消息队列、事件溯源等场景中有着重要的应用。它可以用于实现发布/订阅模式,处理实时的消息传递和事件通知,也可以用于构建简单的流媒体系统,处理实时数据的输入和输出。

    不能使用Redis存储大规模数据

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Airflow (三) :Airflow WebUI操作介绍

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

KB / KiB,MB / MiB,GB / GiB,… 的区别是什么?

GB和GiB:https://www.zhihu.com/question/24601215 1 显存容量指的是显存能够存储的数据量,单位是GB,显存容量越大 按照目前计算机存储来说,还是应该遵循二进制 严格意义上来讲,1 GB (Gigabyte)10^9 KB,而…

Unity随笔:C#运行时

Unity是如何编译运行C#的 (1)Unity会通过编译器将C#脚本编译成IL指令。 Unity会通过Roslyn来对C#代码进行编译,生成中间IL指令集。 当我们每次修改或者添加新的C#代码文件,Unity界面的右下角会出现短暂的“转圈”现象。这就意味…

Vue3-TypeScript-Threejs:导入外部的glb格式3D模型

一、直接上代码&#xff0c;在vue3-typescript-threejs 项目 导入外部的glb格式3D模型 极简代码&#xff0c;快速理解 <template><div ref"container"></div></template><script lang"ts" setup>import { onMounted, ref …

datax 搭建使用

文章目录 datax 环境搭建使用一、解压文件二、配置 json 文件三、执行命令 datax 环境搭建使用 用于全量同步 一、解压文件 将包上传至服务器 输入命令&#xff1a; tar -zxvf datax.tar.gz -C /opt/module/ 将包 解压到 /opt/module 目录 解压完之后&#xff0c;不需要任何…

NOIP 2017 宝藏----Java题解

目录 NOIP 2017 宝藏 题目描述 输入描述: 输出描述: 输入 输出 说明 输入 输出 说明 备注: 代码实现&#xff1a; NOIP 2017 宝藏 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO For…

Meta开源支持1000多种语言的文本转语音与语音识别大语言模型

据不完全统计,地球上有超过7000多种语言,而现在的大语言模型仅仅只涉及到了主流的100多种语言。相对全球7000多种语言来讲,这仅仅只是其中的一小部分。如何让全球的人获益,把大语言模型扩展到更多的语言上,一直是大语言模型研究的重点。Meta发布了涵盖 1406 种语言的预训练…

修改Openwrt软路由的web端口

如何修改openwrt路由器的web访问端口号&#xff1f; 在OpenWrt路由器上&#xff0c;如何修改Web访问端口号&#xff0c;通常涉及到修改HTTP服务器的配置文件。默认情况下&#xff0c;OpenWrt使用的HTTP服务器是uHTTPd。 以下是修改Web访问端口号的步骤&#xff1a; 一、通过…

Install Docker in Linux

Docker官网链接: https://docs.docker.com/ 1.确定Linux版本 新版本的Docker对Linux系统版本有一定的要求。如果Linux的发行版系统是centOS&#xff0c;安装最新版的docker需要centOS 7以上的系统。 在Docker安装帮助页面查看支持的系统版本。 Docker帮助页面:https://docs…

dameng数据库数据id decimal类型,精度丢失

问题处理 这一次也是精度丢失&#xff0c;但是问题呢还是不一样&#xff0c;这一次所有的id都被加一了&#xff0c;只有id字段被加一&#xff0c;还有的查询查出来封装成对象之后对象的id字段被减一了&#xff0c;数据库id字段使用的decimal&#xff08;20,6&#xff09;&…

接口测试和功能测试有什么区别

本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xff1…

阿里云 OSS使用介绍

1、什么是阿里云 OSS&#xff1f; OSS 为 Object Storage Service&#xff0c;即对象存储服务。是阿里云提供的海量、安全、低成本、高可靠的云存储服务。 OSS 具有与平台无关的 RESTful API 接口&#xff0c;可以在任意应用、任意时间、任意地点 存储与访问 任何类型的数据。…