首页 > 数据库 >redis 简介

redis 简介

时间:2024-09-17 15:05:19浏览次数:10  
标签:redis 简介 数据类型 支持 场景 集合 Redis 数据

Redis 简介

转载自:Redis 简介 | 菜鸟教程 (runoob.com)

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

  • 性能极高:Redis 以其极高的性能而著称,能够支持每秒数十万次的读写操作24。这使得Redis成为处理高并发请求的理想选择,尤其是在需要快速响应的场景中,如缓存、会话管理、排行榜等。
  • 丰富的数据类型:Redis 不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等。这些数据类型为开发者提供了灵活的数据操作能力,使得Redis可以适应各种不同的应用场景。
  • 原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。
  • 持久化:Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。
  • 支持发布/订阅模式:Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。
  • 单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。单线程模型也简化了并发控制的复杂性。
  • 主从复制:Redis 支持主从复制,可以通过从节点来备份数据或分担读请求,提高数据的可用性和系统的伸缩性。
  • 应用场景广泛:Redis 被广泛应用于各种场景,包括但不限于缓存系统、会话存储、排行榜、实时分析、地理空间数据索引等。
  • 社区支持:Redis 拥有一个活跃的开发者社区,提供了大量的文档、教程和第三方库,这为开发者提供了强大的支持和丰富的资源。
  • 跨平台兼容性:Redis 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows,这使得它能够在不同的技术栈中灵活部署。

Redis 与其他 key-value 存储有什么不同?

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

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

  • 丰富的数据类型:Redis 不仅仅支持简单的 key-value 类型的数据,还提供了 list、set、zset(有序集合)、hash 等数据结构的存储。这些数据类型可以更好地满足特定的业务需求,使得 Redis 可以用于更广泛的应用场景。
  • 高性能的读写能力:Redis 能读的速度是 110000次/s,写的速度是 81000次/s。这种高性能主要得益于 Redis 将数据存储在内存中,从而显著提高了数据的访问速度。
  • 原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性非常重要。
  • 持久化机制:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,以便在系统重启后能够再次加载使用。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。
  • 丰富的特性集:Redis 还支持 publish/subscribe(发布/订阅)模式、通知、key 过期等高级特性。这些特性使得 Redis 可以用于消息队列、实时数据分析等复杂的应用场景。
  • 主从复制和高可用性:Redis 支持 master-slave 模式的数据备份,提供了数据的备份和主从复制功能,增强了数据的可用性和容错性。
  • 支持 Lua 脚本:Redis 支持使用 Lua 脚本来编写复杂的操作,这些脚本可以在服务器端执行,提供了更多的灵活性和强大的功能。
  • 单线程模型:尽管 Redis 是单线程的,但它通过高效的事件驱动模型来处理并发请求,确保了高性能和低延迟。

数据类型

  • String (字符串): Redis 中最基本的键值数据类型,每个键对应一个字符串值,可以是文本、数字或者二进制数据。
  • Hash (散列): 类似于键值对集合,适合存储对象,每个键对应一个散列表,其中包含多个字段及其关联的值。
  • List (列表): 有序的字符串链表,按插入顺序排列,支持从两端进行元素的添加和删除,常用于消息队列。
  • Set (集合): 无序的字符串集合,元素唯一,适用于快速成员检测及集合操作,如交集、并集、差集。
  • Sorted Set (有序集合): 类似于集合,但每个元素都有一个分数(score),元素按分数排序,常用于排行榜等场景。

标签:redis,简介,数据类型,支持,场景,集合,Redis,数据
From: https://www.cnblogs.com/20lxj666/p/18407710

相关文章

  • C++实现redis分布式锁
    实现Redis分布式锁在C++中通常涉及到使用Redis客户端库来与Redis服务器通信。下面是一个简单的例子,展示如何使用C++和Redis实现一个基于Redis的分布式锁。首先,你需要安装一个支持Redis的C++客户端库。例如,可以使用`lib_redis`或者`cpp-redis`等库。这里我将提供一个伪代码级别......
  • redis哨兵模式和集群模式
    ###哨兵模式 想象一下你有一家便利店,这个便利店就是你的Redis服务器。为了确保便利店能一直营业,你需要有人来监督这家店是否正常运作。这就是哨兵模式的基本思想。 -**哨兵(Sentinel)**:哨兵就像是便利店的保安,它们的任务是监视便利店是否正常开门营业(也就是监视Redis服务......
  • 解析Redisson 限流器源码
     工具类publicclassRedisUtils{  privatestaticfinalRedissonClientCLIENT=SpringUtils.getBean(RedissonClient.class);  /**  *限流  *  *@paramkey     限流key  *@paramrateType  限流类型  *@paramrate ......
  • redis基础
    一.前言我们前几篇文章说了mysql的基础,不是很深入,但是在我们开发中绝对够用,这篇文章我们来讲我们的redis,我们先来介绍一下我们的redis顺便介绍一下我们的nosql。在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高......
  • 三、redis之strings类型
    strings是redis中使用最多的类型。redis官网中是这么描述strings的:Redisstringsstoresequencesofbytes,includingtext,serializedobjects,andbinaryarrays.可以看到Redisstrings保存的是sequencesofbytes,也就是字节序列。不仅可以保存字符串,而且还可以保存二......
  • MQ学习笔记(一)Kafka简介
    什么是MQ?MessageQueue消息队列,在消息的传递过程中保存消息的容器。父亲==》书架《==儿子好处:应用解耦,异步提速,限流削峰使用成本:引入复杂度,最终一致性,高可用性何时使用:生产者不需要从消费者处获得反馈能够容忍短暂的不一致性效果要大于副作用应用场景应用解耦场......
  • 用户验收测试指南0简介
    0简介这是一本关于多种形式的用户验收测试(UAT)及其用途的。它汇集了有关测试、项目管理、质量管理、团队行为和完整的用户验收测试经验的其他相关材料,并将它们编织成一条牢固可靠的生命线,供用户验收测试新手指南或利益相关者参考。本书是为满足三类不同人群的需求而编写的。......
  • 深入理解redis删除策略和淘汰策略
    1、redis的删除策略Redis是一种内存级数据库,数据都存在内存中,但是针对于已经过期的数据,reids不会立刻删除只是会存储在 expires 中,当执行删除策略的时候,才会从expires中寻找对应的数据存储的地址,在存储空间中找到对应的数据进行删除。数据删除其实就是内存和CPU占用之间寻......
  • 深入理解Redis锁与Backoff重试机制在Go中的实现
    目录Redis锁的深入实现Backoff重试策略的深入探讨结合Redis锁与Backoff策略的高级应用具体实现结论在构建分布式系统时,确保数据的一致性和操作的原子性是至关重要的。Redis锁作为一种高效且广泛使用的分布式锁机制,能够帮助我们在多进程或分布式环境中同步访问共享资源。本文将深......
  • redis主从环境搭建
    准备系统环境:Linuxubuntu4.15.0-62-generic下载redis-6.2.4.tar.gz(官网下载即可)解压编译redistar-xvfredis-6.2.4.tar.gzcdredis-6.2.4make环境准备三个redis服务,一主二从(安装在本地所以用127.0.0.1,此版本从服务器用replica):127.0.0.1:6379master127.......