1、Redis 数据库的基本介绍和特点说明

【AMD显卡在WIndow10/11部署带GPU支持的深度学习环境(Pytorch-DirectML篇)】 这篇是之前Tensorflow-DirectML的姊妹篇,如果对TF感兴趣的可以搜索我的博文。 首先我们丢一个官网地址,但是官网那个会误导新人如果你按那个操作的话。 https://docs.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows 这里用我的方法操作: 首先声明一下,因为我的显卡是AMD RX6600,不带XT(性能和RTX3060 12G版本半斤八两),所以目前没有最新的WSL2驱动,如果有了的话欢迎告知我,所以我这里就. 阅读详情

作为一名Java后端开发程序员,学习 Redis 是一个非常明智的选择。Redis 在现代高并发、高性能系统中扮演着至关重要的角色。下面我将从多个维度为你详细、系统地介绍 Redis 数据库。


一、Redis 是什么?

Redis(Remote Dictionary Server)是一个开源的、基于内存的 键值对(Key-Value)存储系统,它既可以作为数据库使用,也可以作为缓存和消息中间件。Redis 由 Salvatore Sanfilippo(Antirez)开发,使用 C 语言编写,性能极高,广泛应用于互联网企业中。

虽然它常被用作“缓存”,但 Redis 实际上是一个功能丰富的数据结构服务器,支持多种数据类型和丰富的操作命令。


二、Redis 的主要作用

1. 高性能缓存

  • 最常见的用途:减轻数据库压力,提升系统响应速度。
  • 将热点数据(如用户信息、商品信息、会话信息)缓存到内存中,避免频繁访问数据库。

例如:Java 应用中通过 Spring Data Redis 或 Jedis/Lettuce 客户端操作 Redis 缓存用户登录信息。

2. 会话(Session)存储

  • 分布式系统中,使用 Redis 存储用户会话,实现 Session 共享。
  • 配合 Spring Session + Redis 可轻松实现集群环境下的用户状态管理。

3. 分布式锁

  • 利用 SETNX(SET if Not eXists)或 Redlock 算法实现分布式锁,控制并发访问。

4. 消息队列(Message Queue)

  • 使用 Redis 的 List、Pub/Sub 或 Stream 实现轻量级消息队列,用于异步任务处理。

5. 排行榜、计数器等实时统计

  • 利用 ZSet(有序集合)实现排行榜(如游戏积分榜)。
  • 使用 INCR/DECR 实现原子计数(如页面浏览量、库存扣减)。

6. 地理位置服务(GEO)

  • Redis 支持 GEO 命令,可存储和查询地理位置信息,用于“附近的人”、“附近商家”等功能。

三、Redis 的核心特点

特点说明
内存存储,性能极高所有数据存储在内存中,读写速度可达 10万+ QPS(每秒查询数)。
丰富的数据结构不只是简单的字符串,支持:String、Hash、List、Set、Sorted Set(ZSet)、Bitmap、HyperLogLog、GEO、Stream 等。
持久化机制支持 RDB(快照)和 AOF(日志追加)两种持久化方式,保证数据不丢失。
高可用与主从复制支持主从复制(Master-Slave),数据自动同步。
哨兵模式(Sentinel)实现自动故障转移,保障 Redis 高可用。
集群模式(Cluster)支持数据分片(Sharding),实现水平扩展,支持海量数据存储。
原子性操作所有操作都是原子的,适合高并发场景。
支持 Lua 脚本可以在 Redis 服务端执行 Lua 脚本,实现复杂逻辑的原子性。
发布/订阅模型支持简单的消息广播机制,可用于实时通知。
单线程模型(核心)Redis 核心处理是单线程的(网络 I/O 多线程是后来引入的),避免锁竞争,性能稳定。

💡 注意:Redis 6.0 引入了多线程 I/O(网络读写),但命令执行仍为单线程,保证了原子性和简单性。


四、Redis 与其他数据库的对比

对比维度RedisMemcachedMySQLMongoDB
数据存储位置内存为主,可持久化纯内存磁盘为主内存+磁盘
数据模型键值对,支持丰富数据结构简单单值键值对关系型表结构文档型(BSON)
持久化支持(RDB/AOF)不支持支持支持
事务支持有限事务(MULTI/EXEC),非关系型事务不支持支持完整 ACID支持(部分)
高并发性能极高(10万+ QPS)高一般(依赖优化)中等
适用场景缓存、会话、计数器、消息队列等纯缓存业务数据持久化JSON 文档存储
扩展性支持集群(分片)支持一致性哈希依赖主从/分库分表支持分片
数据结构丰富度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

与 Memcached 的对比(最常见对比)

  • Redis 更强大:支持持久化、更多数据类型、主从复制、集群、事务等。
  • Memcached 更简单:纯缓存,多线程,并发处理更强(但功能单一)。
  • 结论:现在大多数新项目选择 Redis,除非你只需要极简单的缓存且追求极致并发。

五、Redis 在 Java 后端中的典型应用场景

  1. 缓存用户信息

    // 使用 Redis 缓存用户信息,避免每次查数据库
    redisTemplate.opsForValue().set("user:1001", userJson, Duration.ofMinutes(30));
    
  2. 分布式锁

    Boolean locked = redisTemplate.opsForValue().setIfAbsent("lock:order", "1", Duration.ofSeconds(10));
    if (locked) {
        try {
            // 执行扣库存等操作
        } finally {
            redisTemplate.delete("lock:order");
        }
    }
    
  3. 限流(Rate Limiting)

    // 每秒最多允许 10 次请求
    String key = "rate_limit:" + userId;
    Long count = redisTemplate.opsForValue().increment(key);
    if (count == 1) {
        redisTemplate.expire(key, 1, TimeUnit.SECONDS);
    }
    if (count > 10) {
        throw new RuntimeException("请求过于频繁");
    }
    
  4. 排行榜(ZSet)

    redisTemplate.opsForZSet().add("game:rank", "player1", 95.5);
    Set<String> top10 = redisTemplate.opsForZSet().reverseRange("game:rank", 0, 9);
    

六、学习建议(针对 Java 开发者)

  1. 掌握基础命令:学习 Redis 的常用命令(GET/SET/HSET/LPUSH/SADD/ZADD 等)。
  2. 熟悉 Java 客户端:
    • Jedis:老牌客户端,轻量但非线程安全。
    • Lettuce:推荐使用,支持异步、响应式、线程安全,Spring Boot 默认集成。
  3. 集成 Spring Boot:
    • 使用 spring-boot-starter-data-redis 快速集成。
    • 配置连接池(LettucePool 或 JedisPool)。
  4. 理解持久化机制:RDB vs AOF,如何选择?
  5. 掌握高可用方案:主从、哨兵、集群的搭建与原理。
  6. 实战项目:尝试用 Redis 实现缓存穿透/击穿/雪崩的解决方案(如布隆过滤器、空值缓存、互斥锁等)。

七、总结

Redis 是一个高性能、多功能的内存数据存储系统,不仅是一个缓存工具,更是一个强大的数据结构服务器。它在 Java 后端开发中广泛用于:

  • 提升系统性能(缓存)
  • 实现分布式协调(锁、计数器)
  • 支持实时业务(排行榜、消息队列)

相比其他数据库,Redis 的优势在于 速度快、数据结构丰富、功能全面、生态成熟,是现代分布式系统中不可或缺的一环。

智联招聘Python岗位数据采集:基于API请求的校园招聘信息爬取实战 本项目开发了一个智联招聘Python岗位校园招聘数据采集系统,采用requests库直接调用API接口获取结构化数据。系统通过分析API接口结构,配置完整的请求头、Cookie和身份验证参数,实现了10页数据的批量采集。采集内容包括工作名称、薪资范围、企业信息等10个关键字段,并存储为Excel格式。项目严格遵守网络爬虫规范,合理控制请求频率,数据仅用于技术学习和就业分析。技术实现涉及API逆向工程、JSON数据处理、防御性编程等核心技能,为学生职业规划和教育机构教学改革提供数据支持。 阅读详情

相关推荐

ESP32-P4 GPIO双域架构:HP/LP分离、寄存器级控制与低功耗工程实践

GPIO(通用输入输出)是嵌入式系统中最基础且高频使用的硬件接口,其性能、灵活性与功耗特性直接影响产品实时性与续航能力。现代高性能MCU如ESP32-P4通过HP/LP双电源域分离、可编程IO复用(IO MUX)、信号交换矩阵及硬件自动化机制(如ETM事件、Sigma-Delta调制),将传统GPIO升级为兼具模拟能力、亚微秒响应与微安级待机的智能外设子系统。其核心价值在于实现引脚功能动态重构、中断零延迟处理、Deep-sleep期间自主唤醒与多核安全操作。典型应用场景涵盖工业PLC信号采集、电池供电传感器

weixin_35949153的博客 95

数据库:Redis数据库优点介绍

1、速度快不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快。当然,缓存的数据总量不能太大,因为受到物理内存空间大小的限制。2、支持多种数据库类型丰富的数据结构 除了str...

IT技术分享社区 1732

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 438

Redis的特点

Redis的特点 一:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中。 二:Redis数据读写速度非常快,因为它把数据都读取到内存当中操作。 三:Redis支持数据的备份,即master-slave模式的数据备份。 四:Redis提供了丰富的数据结构。 五:Redis的所有操作都是原子性,支持事务。 ...

qq_49070696的博客 4354

14、PostgreSQL日志文件、系统统计与查询优化全解析

本文全面解析了PostgreSQL数据库中的系统统计、日志文件配置与查询优化技巧。详细介绍了如何利用pg_stat_statements模块进行性能监控,配置日志记录以发现潜在问题,并深入探讨了查询优化器的工作原理和优化策略。通过实际案例分析,展示了如何综合应用这些技术提升数据库性能。适合希望提升PostgreSQL性能与稳定性的数据库管理员和开发人员阅读。

efc123456的博客 93

逆强化学习:从专家示范中学习策略

逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。

AI天才研究院 1447

Redis数据库

在Web服务器中,高可用是指服务器可以正常访问的时间。在Redis服务器中,除了需要保证正常服务,还需要考虑数据容量的扩展、数据安全不丢失等等。持久化、复制、哨兵和集群。1.持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储 在硬盘,保证数据不会因进程退出而丢失。2.复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备 份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;

qq_60787657的博客 3613

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

729

Redis笔记

Redis 内容来自菜鸟教程——redis部分~ REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。 Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(.

weixin_52777510的博客 1327

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进行具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进行二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1863

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4758

Redis特点

什么是redis redis是使用C语言编写的,是一个开源高性能内存中键值对数据结构存储系统。它可以做缓存,数据库,中间件。它支持的键值对数据结构有:String,list,set,hash,zset,Bitmaps,Hyperloglogs,Geospatia等。 redis有哪些优缺点 优点 读写性能强 数据结构丰富 支持数据持久化 忘记了 支持事物 忘记了 支持主从复制 忘记了 缺点: 存储容量受物理内存影响(不能用作海量数据的高性能读写

m0_50574545的博客 1147

GraphRAG深度解析:架构设计与实战案例

生成模块结合检索到的图数据和用户输入的查询,生成高质量的文本输出。通过结合图数据库中的知识,模型可以更准确地回答用户的问题,提供更优质的客户服务。通过分析用户的行为和偏好,结合图数据库中的知识,模型可以为用户提供个性化的推荐。:通过图数据库存储和检索结构化的知识,为语言模型提供丰富的背景信息,提升生成内容的质量和准确性。:选择合适的图数据库,如Neo4j、OrientDB等,以支持高效的图数据存储和检索。:利用图数据库的高效检索能力,快速找到与用户查询最相关的图元素,提高系统的响应速度。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1589

Redis教程——Redis特点和技术介绍

文章目录Redis介绍Redis是什么,有什么特点Redis可以解决的问题Redis技术点get Redis介绍 为了更好的了解Redis,我们不妨从以下几点来分析Redis: Redis是什么,有什么特点 我们使用Redis是为了解决什么样的问题 Redis有哪些特别棒的技术,这些技术又为了解决实际工作中的哪些问题 了解Redis,我们怎么去使用Redis,需要get哪些知识技能点 运用R...

Amos技术足迹 1750

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Redis 单机16个db,集群只有一个的基本知识

Redis 默认提供了 16 个数据库(索引 0 到 15),彼此独立,用于数据隔离

码农研究僧的博客 1908

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

redis基本介绍以及在node中使用

redis中文网Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。前面我们验证redis是否安装成功时用到了一行命令这个命令的作用是通过Redis的命令行工具redis-cli来连接本机(IP地址为127.0.0.1。

jieyucx的博客 3492

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Redis的特点以及Redis数据库相关指令

只要是单纯的使用redis-server启动的话,都会去编译好的目录下找到一个叫做redis.conf的文件去启动,即便是修改了端口号,也是只能启动一个redis服务。Redis单线程,单进程 由于是单线程和单进程的,所以它的线程是安全的,我们之前说的java中的多线程安全在分布式中不起作用,当时只针对一个JVM中是有效的。- 作用 : 这个命令和EXPIRE 命令的作用类似,但是它以毫秒为单位设置key 的生存时间,而不像EXPIRE 命令那样,以秒为单位。特殊符号用 "\" 隔开。

2401_86341340的博客 979

redis连接指定database

我整理的一些关于【数据】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/eDOcp1Redis连接指定Database的全面解析 Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、数据库、消息中间件和任务队列等领域。因为其高速的性能和丰富的功能,许多开发者在项目中选...

weixin_41276257的博客 544

Redis介绍

Redis(Remote Dictionary Server)是一个使用C语言开发的开源的、基于内存的数据结构存储系统 ,它可以用作数据库、缓存和消息中间件。Redis 支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集(Sorted Sets)等,并提供了丰富的操作命令来高效地管理这些数据结构。Redis 是一个功能强大且灵活的工具,它不仅能够作为高性能的键值对存储解决方案,还可以通过其支持的各种数据结构解决复杂的业务需求。

m0_48944689的博客 2784

【Redis设计与实现】Redis数据库介绍

本文主要围绕Redis数据库的基本操作,增删改查实现方法,服务器保存键的过期时间及自动删除过期键等机制进行介绍。

m0_48373534的博客 1641

Redis的基本介绍及使用

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

weixin_53946236的博客 789

Python操作基本的Redis 数据库

1. 简介Redis 是是一个高性能的 key-value 数据库。Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的 key-value 类型的数据,同时还提供 list、set、zset、hash 等数据结构的存储。Python 程序要访问 Red...

小屁孩大帅-保密的博客 1537

Redis锁与DB锁

场景特征推荐使用原因高并发、短事务、非核心数据Redis 锁性能高,能支撑高并发,少量异常可通过业务兜底解决低并发、长事务、核心数据DB 锁(SELECT FOR UPDATE)事务 ACID 保障数据安全,无锁过期风险,满足合规审计要求幂等性控制(如重复支付)DB 锁(唯一索引)无需锁等待,性能高于悲观锁,能有效防止重复写入分布式系统、跨服务并发Redis 锁天然支持分布式,跨服务 / 跨机器的锁控制更简单单服务、本地并发本地锁(synchronized)

AlbenXie的博客 835

redis1技术--基本介绍和操作

文章目录一.Redis介绍1.Redis简介2.Redis重要特性3.Redis应用场景二.Redis安装部署1.目录规划2.安装命令3.配置文件说明4.启动关闭服务三.Redis基本操作命令1.全局命令2.字符串3.列表4.哈希5.集合四.Redis持久化1.实验脚本2.两种持久化方式介绍2.1 rdb2.2 AOF3.redis 持久化方式和区别五.Redis安全认证 一.Redis介绍 1.Redis简介 1.Redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有

weixin_44736359的博客 803

Redis 远程连接,基本命令

Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列和数据库。在使用Redis时,我们经常需要通过远程连接来访问Redis服务器。本文基于Redis 5.0.14.1版本,介绍如何通过redis-cli命令进行远程连接,并提供了一些常用的Redis基本命令。

一碗清深的博客 9490

Redis连接DB0查到DB3数据之谜

Redis多数据库机制在单机模式下支持16个逻辑数据库(db0-db15),各库键空间独立。但在集群模式下仅支持DB0,所有数据都存储在同一个库中。这是因为集群采用槽位分片机制,多数据库会导致key冲突和分布式管理问题。当在DB0看到"DB3数据"时,实际是集群模式下所有数据都被写入DB0的结果。建议单机/主从/Sentinel模式下可使用多库分离数据,而集群环境应通过key前缀区分数据。排查此类问题时需确认是否集群模式,检查SELECT命令是否被忽略。理解这一机制可避免数据混乱,并正确

Annieblog的博客 767
上一篇: PostgreSQL 使用 ShardingSphere 实现更强大的分库分表 + 读写分离
下一篇: 单台 PostgreSQL 数据库如何处理性能瓶颈
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值