首页 > 数据库 >redis - [01] 概述

redis - [01] 概述

时间:2024-06-03 16:37:32浏览次数:26  
标签:01 单线程 Redis redis 数据类型 支持 概述 key 数据

题记部分

 

一、什么是redis

  是一个由Salvastore Sanfilippo使用ANSI C语言编写的key-value存储系统,遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的跨平台的非关系型数据库,并提供多种语言的API。Redis通常被称为数据结构服务器,因为值可以是字符串、哈希、列表、集合和有序集合等类型。

 

二、Redis的特点

Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守BSD协议,提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。

性能极高:Redis 以其极高的性能而著称,能够支持每秒数十万次的读写操作。这使得Redis成为处理高并发请求的理想选择,尤其是在需要快速响应的场景中,如缓存、会话管理、排行榜等。

丰富的数据类型:Redis 不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等。这些数据类型为开发者提供了灵活的数据操作能力,使得Redis可以适应各种不同的应用场景。

原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。

持久化:Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。

支持发布/订阅模式:Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。

单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。单线程模型也简化了并发控制的复杂性。

主从复制:Redis 支持主从复制,可以通过从节点来备份数据或分担读请求,提高数据的可用性和系统的伸缩性。

应用场景广泛:Redis 被广泛应用于各种场景,包括但不限于缓存系统、会话存储、排行榜、实时分析、地理空间数据索引等。

社区支持:Redis 拥有一个活跃的开发者社区,提供了大量的文档、教程和第三方库,这为开发者提供了强大的支持和丰富的资源。

跨平台兼容性:Redis 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows,这使得它能够在不同的技术栈中灵活部署。

 

三、Redis VS 其他key-value

  Redis 与其他 key-value 存储系统的主要区别在于其提供了丰富的数据类型、高性能的读写能力、原子性操作、持久化机制、以及丰富的特性集。

以下是 Redis 的一些独特之处:

丰富的数据类型:Redis 不仅仅支持简单的 key-value 类型的数据,还提供了 listsetzset(有序集合)、hash 等数据结构的存储。这些数据类型可以更好地满足特定的业务需求,使得 Redis 可以用于更广泛的应用场景。

高性能的读写能力:Redis 能读的速度是 110000次/s,写的速度是 81000次/s。这种高性能主要得益于 Redis 将数据存储在内存中,从而显著提高了数据的访问速度。

原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性非常重要。

持久化机制:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,以便在系统重启后能够再次加载使用。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。

丰富的特性集:Redis 还支持 publish/subscribe(发布/订阅)模式、通知、key 过期等高级特性。这些特性使得 Redis 可以用于消息队列、实时数据分析等复杂的应用场景。

主从复制和高可用性:Redis 支持 master-slave 模式的数据备份,提供了数据的备份和主从复制功能,增强了数据的可用性和容错性。

支持 Lua 脚本:Redis 支持使用 Lua 脚本来编写复杂的操作,这些脚本可以在服务器端执行,提供了更多的灵活性和强大的功能。

单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —

标签:01,单线程,Redis,redis,数据类型,支持,概述,key,数据
From: https://www.cnblogs.com/houhuilinblogs/p/18229137

相关文章

  • CSP历年复赛题-P1982 [NOIP2013 普及组] 小朋友的数字
    原题链接:https://www.luogu.com.cn/problem/P1982题意解读:特征值:第i个同学的特征值是1~i中最大子段和,分数:第i个同学分数是前1~i-1个同学的分数+特征值最大值,求最大分数。解题思路:第一步:先计算特征值f[i],f[i]等于1~i中所有数的最大子段和,所以借助最大子段和的DP方法,每次计算以i......
  • 脑部磁共振成像肿瘤分割方法(MATLAB 2018)
    近年脑肿瘤发病率呈上升趋势,约占全身肿瘤的5%,占儿童肿瘤的70%。CT、MRI等多种影像检查方法可用于检测脑肿瘤,其中MRI应用于脑肿瘤成像效果最佳。精准的脑肿瘤分割是病情诊断、手术规划及后期治疗的必备条件,既往研究者对脑部肿瘤分割算法进行了深入研究,并取得了很多成果。然而脑......
  • 鸿蒙HarmonyOS实战-ArkTS语言基础类库(概述)
    ......
  • MVC2.0项目部署在IIS Winserver2012
    1、MVC1.0升级2.0初始项目为MVC1.0,用VS2010开发环境直接将项目升级为2.0参考地址:https://www.cnblogs.com/myshell/archive/2010/05/08/1730348.html用的第三种方式进行项目升级2、项目发布,直接重新生成项目,Bin文件夹下需要复制system.web.dllbin文件下不要复制系统文件,否则......
  • 西屋1C31164G01
    抗干扰导航定位板卡Septentrio高精度卫星定位定向2024-04-0908:28安徽一、抗干扰导航定位板卡的介绍抗干扰导航定位板卡是一种能够有效应对外部干扰的定位设备,它可以在复杂的环境中提供精准的导航和定位服务。这种板卡能够通过内部的技术,在信号受到干扰时依然保持稳定并提......
  • 代码随想录算法训练营第二十二天 | 235.二叉搜索树的最近公共祖先 701.二叉搜索树中的
    235.二叉搜索树的最近公共祖先题目链接文章讲解视频讲解思路:递归遍历二叉搜索树   如果当前值大于p和q的值,向左遍历   如果当前值小于p和q的值,向右遍历   否则说明当前值介于p和q之间,直接返回当前节点classSolution{public:TreeNode*lowestCommonAnc......
  • AI预测体彩排3采取888=3策略+和值012路一缩定乾坤测试6月3日预测第10弹
        昨天的第二套方案已命中!今天继续基于888=3的大底进行测试,今天继续测试,好了,直接上结果吧~    首先,888定位如下:    百位:6,4,7,8,2,9,1,0    十位:2,3,4,1,6,7,8,9    个位:3,4,5,6,7,0,8,9    方案一:    一次缩......
  • AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试6月3日预测第10弹
             昨天的第二套方案再次成功命中!今天继续基于888=3的大底,使用尽可能少的条件进行缩号。好了,直接上结果吧~     首先,888定位如下:    百位:7,6,8,5,9,2,1,0    十位:6,7,8,5,9,2,1,0    个位:2,3,1,4,6,7,8,9    ......
  • 【Redis】Redis集群脑裂的原因及解决方案
    Redis集群脑裂(Split-Brain)是指在集群模式下,网络分区或节点故障导致集群中的一部分节点失去与其他节点的连接,从而出现多个孤立的子集群,各自认为自己是独立的主集群。这种情况可能导致数据不一致和服务不可用。脑裂的成因网络分区:网络故障导致集群中的部分节点无法互相通信......
  • 【Redis】什么是缓存击穿 ? 怎么解决
    缓存击穿(CacheBreakdown)是指缓存中某个热点数据在某一时刻失效,大量并发请求同时查询这个数据,由于缓存失效,这些请求会直接打到数据库,可能导致数据库瞬间负载过高,甚至崩溃。与缓存穿透不同,缓存击穿是针对一个特定的热点数据在高并发场景下的失效问题。解决缓存击穿的方法......