Redis 除了用作缓存还能干吗?

【Redis】缓存 使用Redis作为Mysql缓存时,当Redis刚刚启动,或者Redis大批key失效之后,此时由于Redis自身相当于是空着的,没有什么缓存数据,那么Mysql就很可能直接被访问到,从而造成较大的问题因此就需要提前把热点数据备好,直接写入到Redis中,使Redis为Mysql搭建的“保护罩”尽快成型热点数据可以基于上文介绍过的统计方式生成,这份热点数据不用那么“精确”,只要能帮助Mysql低于大部分请求即可,随着程序运行,缓存的热点数据会逐步自动调整,来更一步适应当前情况。 阅读详情

今天我们来聊聊 Redis 的使用案例。

Redis 是一种内存键值数据库。它支持多种数据结构,如 String, Hash, List, Set 和 SortedSet。

01 缓存

Redis 的最常用的用例是缓存,以加快网络应用的速度。在这种用例中,Redis 将经常请求的数据存储在内存中。它允许网络服务器频繁访问的数据。这就减少了数据库的负载,并缩短应用程序的响应时间。在大规模应用中,缓存分布在 Redis 服务器集群中。

Redis 作为分布式缓存时需要考虑的其他问题包括:

  • 设置正确的 TTL (Time to Live)

  • 处理冷启动时对数据库的密集访问

02 Session 存储

另一个常见用例是将 Redis 用作 Session 存储,在无状态服务之间共享 Session 数据。

当用户登录网络应用程序时,服务端会创建一个唯一的 Session ID,Session 数据会存储在 Redis 中,然后 Session 作为 Cookie 的一部分返回给客户端。

当用户向应用程序发出请求时,Session ID 会包含在请求中。无状态网络服务器会使用 Session 数据。值得注意的是 Redis 是内存数据库。如果 Redis 服务器重启,存储在 Redis 中的 Session 数据会丢失。

即使 Redis 提供了 RDB 和 AOF 等持久化选项,但这些选项在重启时加载数据的时间往往太长,不实用。在实际生产环境中,数据会复制到备份实例。如果主实例崩溃,备份迅速升级,接管流量。

03 分布式锁

需要协调对某些共享资源的访问时,就会使用分布式锁。Redis 通过其原子命令(如 SETNX, SET if Not eXists)来做分布式锁。它允许调用者设置一个不存在的键。

比如,客户端通过设置一个唯一的 Key 来获取锁:

SETNX lock "1234abcd" EX 3

如果 Key 尚未设置,SETNX 命令返回 1,表明锁已被客户端获取。客户端完成工作后 删除 Key ,释放锁。

如果 Key 已被设置,SETNX 命令返回 0,表明锁已被其他客户机持有。在这种情况下,客户端会等待并重试 SETNX 操作,直到锁被其他客户端释放。

请注意,这种简单的实现对于许多用例来说已经足够好了,但并非完全容错。对于生产应用,许多 Redis 客户端库提供高质量的分布式锁实现。

04 限流

Redis 可用作限流。一个非常基本的限流算法是这样工作的:

对于每个用户请求,其请求的 IP 或用户 ID 用作 Key。每个请求都会使键值递增。将当前计数与允许的速率限制进行比较,如果计数在速率限制范围内,则处理请求。如果计数超过速率限制,则拒绝请求。Key可以设置为在特定时间窗口(如一分钟)后过期,以重置下一个时间窗口的计数。

05 游戏排行榜

对于大多数规模不是很大的游戏来说,Redis 是一种很好的实现方式。SortedSet 是实现这一功能的基本数据结构。

SortedSet 的每个元素都有一个与之相关的分数。元素按分数排序。这样就可以在对数时间内 完成排序。

06 购物车

我们可以使用 Hash 来表示购物车中的键值对。对于简单的电商平台来说,在 Redis 中实现购物车可以兼顾用户体验和快速交付。

07 计算用户留存率

我们可以使用 Bitmap 来表示每天登录的用户并计算用户保留率。这种计数功能占用的内存很少。

08 消息队列

我们可以使用 List 来做消息队列。也可以使用 Redis 的 PubSub 功能来实现类似的消息总线功能。

Redis缓存的工作机制 Redis:缓存的工作机制Redis缓存的工作机制缓存的特征Redis缓存处理请求Redis作为旁路缓存Redis中缓存的类型只读缓存读写缓存参考文献 Redis缓存的工作机制 Redis具有高性能的数据存取特性,广泛的应用于缓存场景,在提升业务应用响应速度的同时,也避免了将数据查询的压力发送到了数据库。Redis用作缓存的普遍性和其在应用中的钟涛作用,我们需要了解Redis为什么能够用作缓存一级其具体的工作机制。 缓存的特征 无论是计算机系统还是具体的应用,其架构都是分层的。系统中的不同层之间访问速度 阅读详情

相关推荐

NVIDIA Tao Toolkit环境配置踩坑

请搭配食用该文章为 Tao 安装中可能出现的问题进行解答,如果存在本文章中没出现的问题,欢迎提问,由我复现后更新文章。由于大部分云服务器厂商不能支持 docker,因此我使用的环境为2023年5月27日在平台租的 3080 旧版环境进行实验。

qq_36630208的博客 771

【Redis】redis用作缓存和分布式锁

缓存预热、击穿、雪崩、穿透以及看门狗等相关问题

weixin_69380220的博客 1561

别再手动算频谱了!用这个在线FFT工具,5分钟搞定JSON/CSV数据分析

本文介绍了一款高效的在线FFT工具,帮助用户快速分析JSON/CSV格式的时域数据,5分钟内完成频谱分析。通过傅里叶变换(FFT)算法,大幅提升计算效率,解决传统手动计算的痛点,适用于工业振动分析、设备故障诊断等场景。

weixin_29172201的博客 258

除了用作缓存数据,Redis还可以做这些

除了用作缓存数据,Redis还可以做这些 Redis应该说是目前最受欢迎的NoSQL数据库之一了。Redis通常被作为缓存组件,用作缓存数据。不过,除了可以缓存数据,其实Redis可以做的事还有很多。下面列举几例,供大家参考。 1、最新列表 例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUS

huangshulang1234的博客 7457

IPV6基本配置

IPV6配置,DHCPV6,华为模拟器,IPV6的M/O标志位

路漫漫其修远兮 4665

SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码)

二维回波信号分析

zr2006_7的专栏 2万+

Redis除了做缓存,还能做什么

缓存 Redis是什么大家都知道,一个非关系型数据库。大部分情况下我们使用Redis做缓存。使用缓存的情况一般是这样的: Redis缓存 “ (1)从Redis缓存中获取数据,如果存在数据,直接返回值。 (2)如果不存在,执行数据库的查询方法 (3)将数据库中的值放入缓存,并返回值 ” 代码如下: 当然我们也可以使用Spring的缓存注解@Cacheble。我们要在配置类上面开启缓存注解@EnableCaching,使用如下: 有兴趣的童鞋可以看看我写的这篇文章: “ 利用AO

wujialv的博客 4441

FPGA之全数字锁相环(DPLL)

1. 数字锁相环的基本原理和组成 1.1 锁相环(PLL)的简介 锁相环最开始并不是用在数字电路中,而是模拟短路中。对于模拟电路中的锁相环,大家可以参考这篇文章稍微看一下,数字和模拟只是实现的方法不同,但是原理、步骤还是共同的。关于模拟PLL。可以参考一片文章: http://www.sohu.com/a/190569594_464086 首先在学习数字锁相环之前,我们应该先了解什么是锁相环?锁相...

DBLLLLLLLL的博客 5万+

HoRain云--Redis除了用作缓存数据,Redis还可以做这些

我需要列举Redis的主要功能,比如数据结构支持(字符串、哈希、列表、集合、有序集合、位图、HyperLogLog、流),然后对应到不同的使用场景。例如,列表和流可以用于消息队列,有序集合适合排行榜,发布订阅模式用于实时消息系统,地理空间索引用于位置服务,事务和Lua脚本用于原子操作,持久化选项确保数据安全,分布式锁用于协调多个实例,HyperLogLog用于基数统计,位图处理用户在线状态或标记,模块扩展比如RedisSearch和RedisGraph等。嗯,用户问的是Redis除了缓存数据还能做什么。

sinat_57153473的博客 1157

纽扣电池供电系统优化:NBM5100A与STM32F745VG组合方案

在低功耗物联网设备设计中,能量管理是核心挑战之一。纽扣电池因其体积小、成本低被广泛采用,但瞬时大电流需求常导致电压骤降和寿命缩短。通过超级电容缓冲技术,可以实现能量的细水长流式存储与集中释放。NBM5100A电源管理IC与STM32F745VG微控制器的组合方案,采用双阶段能量管理架构,先以恒定小电流充电,再通过电容释放大电流。这种方案不仅能提升系统稳定性,还能延长电池寿命3-5倍,特别适合智能门锁、无线传感器等需要间歇性高功率输出的场景。

weixin_29194255的博客 256

保姆级教程:用Intouch SMC连接S7-200 Smart PLC,Modbus TCP和S7协议一次搞定

本文详细介绍了如何使用Intouch SMC连接S7-200 Smart PLC,涵盖Modbus TCP和S7协议的双协议通信配置。通过环境准备、参数设置、常见问题排查及实战技巧,帮助工程师快速实现工业自动化系统中的稳定通信,提升设备监控效率。

weixin_30499315的博客 430

Redis 除了缓存,还能干什么?

redis不做缓存还能干啥?存个token?

2402_89042144的博客 1420

硬核入门!Python爬虫实战:爬取豆瓣读书TOP250,书名+评分+简介,一键生成精美Excel书单(2026避坑版)

通过这个实战,你不仅获得了一份珍贵的豆瓣TOP250书单HTTP请求与响应的本质。HTML解析的核心技巧。反爬虫的基本应对策略。数据清洗与存储的完整流程。爬虫是通往数据世界的一把钥匙。现在,钥匙在你手中,去探索更多有趣的数据吧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 544

Redis除了做缓存,还能做什么???

Redis(Remote Dictionary Server)是一款开源的、基于内存的数据结构存储系统,常用于构建高性能、可扩展的应用程序。而缓存是 Redis 最常见的应用场景之一。将经常被访问的数据(如数据库查询结果、热门文章内容等)存储在 Redis 中,下次请求时直接从 Redis 中获取,减少对后端数据源(如数据库)的访问压力,提升系统整体性能。例如在新闻资讯类网站,将热门新闻详情缓存到 Redis,大量用户浏览时能快速响应。

Java小白的博客 致力分享每一天学到的知识 1146

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Redis缓存】

相比于数据库而言,缓存的操作性能更高,缓存性能高的主要原因有以下几点:1、缓存一般都是key-value查询数据的,因为不像数据库一样还有查询的条件等因素,所以查询的性能一般会比数据库高;2、缓存的数据是存储在内存当中的,而数据库的数据是存储在磁盘当中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;3、缓存更容易做分布式部署(当一台服务器变成多台相连的服务器集群),而数据库一般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。缓存大致分为两大类:本地缓存、分布式缓存本地缓存:也

weixin_54161577的博客 9827

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot集成Redis和配置Redis做缓存

Redis介绍 Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单。 Redis数据库中所有数据都存储在内存中,由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,而且Redis提供了对持久化的支持,即可以将内存中的数据异步写入到硬盘中,且不影...

打破沉默的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

除了缓存,Redis 都解决了哪些问题?

先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。它还内建了复制,lua脚本,LRU,事务等功...

勇往直前的专栏 1382

Kafka 除了用作消息队列还能干吗?

Kafka 除了用作消息队列还能干吗?

Go_ahead_forever的博客 637

Redis 除了做缓存,还能做什么?

综上,和专业的消息队列相比,使用 Redis 来实现消息队列还是有很多欠缺的地方比如消息丢失和堆积问题不好解决。因此,我们通常建议不要使用 Redis 来做消息队列,你完全可以选择市面上比较成熟的一些消息队列比如 RocketMQ、Kafka。不过,消息丢失(客户端断开连接或者 Redis 宕机都会导致消息丢失)、消息堆积(发布者发布消息的时候不会管消费者的具体消费能力如何)等问题依然没有一个比较好的解决办法。这是一个有序的消息链表,每个消息都有一个唯一的 ID 和对应的内容。

m0_73473352的博客 2229

redis除了做缓存还可以做什么

Redis应该说是目前最受欢迎的NoSQL数据库之一了。Redis通常被作为缓存组件,用作缓存数据。不过,除了可以缓存数据,其实Redis可以做的事还有很多。下面列举几例,供大家参考。1、最新列表(推荐学习:Redis视频教程)例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUSH命令构建L...

别抢我蓝buff 2955

Redis除了做缓存还能做什么?

合理使用 Redis 可以显著提升系统性能,解决分布式场景下的复杂问题。根据具体需求选择合适的数据结构和功能,是最大化 Redis 价值的关键。Redis 除了作为高性能缓存外,还因其丰富的数据结构和功能,广泛应用于多种场景。Redis 的多样化应用得益于其。

千层冷面的博客 1734

蓝易云:Redis除了用作缓存数据,Redis还可以做这些

总结来说,Redis不仅是一个高性能的缓存系统,还具备多种功能和用途。它可以作为数据存储、消息队列、计数器、分布式锁、地理空间索引和实时统计等的解决方案,在各种应用场景中发挥重要作用。

高性价比服务器就选:蓝易云 563

Python 与 Redis 高性能缓存策略

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串、哈希、列表、集合等,并且提供了丰富的操作命令来管理这些数据结构。Redis是一个强大的缓存工具,能够帮助Python应用程序提升性能。通过合理的设计缓存策略,我们可以有效地利用Redis的优势,同时解决一些潜在的问题。在未来的工作中,建议进一步研究Redis的高级功能,如集群部署和持久化配置,以便更好地满足复杂应用场景的需求。

2501_90730022的博客 1597
上一篇: 如何保证API安全?
下一篇: 索引 + 异步 ,从 12h 优化到 15 min
Java_2017_csdn
博客等级 码龄10年 329粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值