首页 > 数据库 >redis入门

redis入门

时间:2024-08-22 15:22:01浏览次数:8  
标签:缓存 入门 redis Redis 支持 场景 集合 数据结构

1 介绍

1.1 简介

        Redis(Remote Dictionary Server)是一个使用ANSI C编写的支持网络、基于内存分布式、可选持久性键值对存储数据库。根据月度排行网站DB-Engines.com的数据,Redis是最流行的键值对存储数据库。                                                                -- 维基百科

        Redis是一种开源的、高性能的键值对(key-value)数据库,具有多种数据类型支持和持久化功能,广泛应用于缓存、消息队列和即时信息查询等场景

        Redis的出现是为了解决关系型数据库在高并发情况下的性能瓶颈

Redis的官方网站地址:https://redis.io/

1.2 命名规范

业务模块名:业务逻辑含义:其他:value类型

2 基础数据类型

redis 支持多种数据类型,每种都有其独特的操作和应用场景。以下将详细介绍Redis的五种基本数据类型及其常用操作:

2.1 字符串(String)

  • 基本操作:字符串是Redis中最基本的数据类型,可以存储字符串、整数、浮点数等。操作包括SETGETMSETMGETINCRDECRAPPEND等。

应用实例

  • 缓存数据:例如,缓存用户信息:

  • 计数器:对网站访问次数进行计数:

  • 分布式锁:实现简单的分布式锁,用于控制多个客户端对同一资源的访问。

2.2 列表(List)

  • 基本操作:列表是简单的字符串列表,支持在列表两端插入或删除元素。操作包括LPUSHRPUSHLPOPRPOPLRANGELINDEX等。

应用实例

  • 消息队列:生产者将消息放入队列左端,消费者从右端取出消息:

  • 任务队列:使用BRPOP实现阻塞队列,等待任务到来。
  • 最近访问记录:例如,记录用户的浏览历史,最新访问的内容插入到列表头部:

2.3 集合(Set)

  • 基本操作:集合是无序且不重复的字符串集合。操作包括SADDSREMSMEMBERSSISMEMBER等。

应用实例

  • 标签管理:给文章添加标签,一个标签集合对应一篇文章:

  • 好友关系:存储用户的好友列表,通过集合的交集操作找到共同好友。
  • 去重操作:存储唯一的访问IP,实现去重:

2.4 有序集合(Sorted Set)

  • 基本操作:有序集合类似于集合,但每个元素关联一个分数,通过分数排序。操作包括ZADDZREMZRANGEZREVRANGE等。

应用实例

  • 排行榜:例如,用户的积分排行榜,按积分排序:

  • 时间线:存储用户发布的微博,用时间戳作为分数:

2.5 哈希(Hash)

  • 基本操作:哈希是一个键值对集合,适用于存储对象。操作包括HSET,HGET,HMGET,HINCRBY,HGETALL等。

应用实例

  • 存储用户信息

  • 配置信息:存储应用程序的配置参数:

3 应用场景与优势

  • 缓存系统:由于Redis的高性能和内存存储特性,使其成为理想的缓存解决方案,可以大幅减少数据库的负载。例如,在网站应用中,可以将频繁查询的数据缓存到Redis中,提高响应速度。
  • 消息队列:利用列表类型的特性,Redis可以作为消息队列使用,支持发布/订阅模式,使客户端之间能够通过消息传递进行通信。这在实时通知、任务分发等场景中非常有用。
  • 即时信息查询:Redis适合用于需要快速读写的场景,如热点新闻、购票抢票等。例如,可以通过Redis来存储用户的在线状态、最近的位置信息等。
  • 分布式锁:Redis的原子性操作和高性能使其成为实现分布式锁的理想选择,可用于同步进程和避免资源竞争。例如,在并发环境下,通过Redis的setnx命令可以实现锁的获取和释放。

4 与其他NoSQL数据库之间的对比

RedisMemcachedMongoDB
数据结构支持支持丰富的数据结构,包括String(字符串)、List(列表)、Set(集合)、Hash(哈希)和Sorted Set(有序集合)。主要支持简单的Key-Value数据结构,更适合作为缓存系统。支持更为复杂的文档型数据结构,适合处理结构化和半结构化数据。
性能由于基于内存运行,性能极高,读取速度可达数十万次每秒,写速度也可达十万次每秒。同样基于内存,性能与Redis相当,但在高并发场景下表现更优。虽也基于内存,但因支持更复杂的查询和写入操作,性能略低于Redis和Memcached。
数据持久化支持数据持久化,可以将数据保存到硬盘上,通过RDB快照和AOF日志实现数据安全。不支持持久化,数据仅存在于内存中,重启后数据会丢失。支持数据持久化,通过日记文件(journaling)和复制集(replica sets)保证数据安全。
扩展性支持主从复制和哨兵模式实现高可用性,但需要手动进行分片。可以通过一致性哈希进行分布式扩展,但节点间无数据同步。支持自动分片和复制集,能够自动进行数据均衡和故障转移。
事务支持支持一定程度的事务处理,但仅限于单个命令的入队执行。不支持4.0版本后开始支持
查询语言使用专用的命令接口,支持丰富的命令进行数据操作。使用简单的文本协议进行通信。使用BSON格式进行数据交换,支持丰富的查询语言。
应用场景适用于缓存、会话管理、计数器、消息队列等需要高性能和复杂数据结构的场景。主要用于缓存系统,减少数据库负载。适用于大数据量存储、实时数据分析、内容管理等场景。

         综上所述,Redis以其丰富的数据结构和高性能在多种场景下表现优异,尤其是需要快速读写和复杂数据结构的应用中占据明显优势。Memcached则更适合作为后端数据库的前端缓存系统,简化数据结构并提高响应速度。MongoDB的独特之处在于其处理大规模数据和复杂查询的能力,适合大数据和实时分析应用。

标签:缓存,入门,redis,Redis,支持,场景,集合,数据结构
From: https://blog.csdn.net/qq_67342067/article/details/141125912

相关文章

  • Git入门教程
    一、Git相关概念Git是一种分布式版本控制系统,主要用于跟踪和管理代码的变更。它由LinusTorvalds创建,最初被设计用于Linux内核的开发,现已成为软件开发过程中广泛使用的版本控制工具。1.基本概念版本控制:Git能够跟踪代码的每一次修改,并允许用户回滚到任何一个历史版本,这对......
  • 数据结构链表入门指南 链表基本代码实现以及测试步骤
    链表介绍链表是一种数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表的基本特性包括:动态大小:链表的大小可以根据需要动态调整,不像数组那样需要事先定义固定大小。节点连接:每个节点通过指针连接到下一个节点,从而形成一个链状结构。灵活插入和......
  • Redis 数据类型详解
    Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列、实时数据分析等场景。Redis提供了多种数据类型,本文将详细介绍Redis的五种主要数据类型及其应用场景,并从概述、基本操作、应用场景和数据结构等方面进行深入探讨。1.字符串(String)概述字符串是Redis......
  • FreeRTOS 快速入门(五)之信号量
    目录一、信号量的特性1、信号量跟队列的对比2、两种信号量的对比二、信号量1、二值信号量1.1二值信号量用于同步1.2二值信号量用于互斥2、计数信号量三、信号量函数1、创建2、删除3、give/take一、信号量的特性信号量(Semaphore)是一种实现任务间通信的机制,可以......
  • 想要入门跨境电商?收下这份外贸术语速查手册
    在全球商业活动中,外贸专业词汇作为一种专门术语,广泛涵盖了商品、定价、运输、付款、合同、保险等各个方面。熟练掌握这些术语,不仅能助你与国际商业伙伴顺畅交流,更能让你深入理解外贸流程和规则,提升你的专业素养。接下来,本文将为你详细介绍一些常见的外贸词汇,帮助你轻松掌握。......
  • 单链表入门
    1.概念与结构概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。2.结点与顺序表不同的是,链表⾥的每一个都是独⽴申请下来的空间,我们称之为“结点/结点”结点的组成主要有两个部分:当前结点要保存的数据......
  • Python入门最完整的基础知识大全【纯干货,建议收藏】!
    主要内容如下:1.用Python做数据分析的重要性Python在数据分析和交互、探索性计算以及数据可视化等方面都显得比较活跃,这就是Python作为数据分析的原因之一,python拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,在处理中......
  • 第二章 redis环境安装与配置
    redis环境安装redis的官方只提供了linux版本的redis,window系统的redis是微软团队根据官方的linux版本高仿的。官方原版:https://redis.io/中文官网:http://www.redis.cn1、下载和安装下载地址:https://github.com/tporadowski/redis/releases使用以下命令启动redis......
  • 第一章 redis简单介绍
    一、引言在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的Web站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。而随着互联网技......
  • 大模型是什么?(超详细)大模型教程入门到精通
    大模型的定义大模型是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。大模......