Redis过期时间的思考

news2025/1/10 2:20:30

当我们把 Redis 当做缓存来使用时,设置过期时间是必须的,但具体设置多少的过期时间呢,针对不同的场景会有不同的决策。

虚假一个场景,我们基于用户的地理位置推荐附近的陌生主播,用户可以线下去找主播沟通。当系统第一次匹配出最佳主播时,我们缓存主播的地理位置。在一段时间和地理范围内,这个推荐的结果保持不变。

我们可以从二维坐标系下手,时间和距离分别是xy轴,原点假设是用户的当前位置,用户移动的过程就可以用图中的①、②、③清晰的表示出来。这种坐标轴的思考方式也算的上是结构化思维了,能够让我们更清晰地理解问题。

在这里插入图片描述
缓存 Key 的设计也有很多处理思路,假设每个用户存储单个key,过期时间设置10分钟。我们只有第一次创建缓存的时候设置一次缓存过期时间,在缓存没有过期的时间范围内,我们对缓存可以进行数据更新,但不更新它的过期时间。

在这里插入图片描述
这样的处理会有一个风险,主要根因是缓存的key是同一样。如果在某一次创建 key 成功,设置缓存过期时间失败的话,缓存可能会持续 20 min。

解决这个问题的思路也特别简单:时间分片,在构造缓存 key 的时候加入时间片的信息,直接每10min一个时间片。熟悉过服务限流会有体会,两边的原理其实是一样的。

获取当前时间秒除以 600s 就是我们这个时间片的后缀。Go语言中的秒是基于 January 1, 1970 UTC 计算的时间,正好是一天的开始。计算的效果就如下所示:

suffix := time.Now().Unix()/600
fmt.Printf("uid:%d\n",suffix)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络技术】心跳机制(入门讲解)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

GB28181,sdk,设备集成和平台测试

本文章主要测试记录集成gb28181的arm端,用公开的平台测试gb2818的视频传输等 系统: 平台:windows10 设备:arm-cortex-A7,1.3G 平台软件:SkeyeVSS gb28181的协议等,在这里就不具体讨论,网上有很多资料,可自行查阅。 本文只是测试一下&am…

抖音小店:庞大用户基数与强大商业化能力的未来发展

抖音小店作为抖音平台的一项新业务,已经取得了一定的成绩,并且具备着广阔的未来发展空间。以下是四川不若与众对抖音小店未来和发展的分析。 首先,抖音小店的用户基数庞大,这为其未来的发展提供了坚实的基础。截至2021年底&#x…

SpringBoot自动配置入门

文章目录 前言自动包规则原理及初始化自动配置1.SpringBootConfiguration2.ComponentScan3.EnableAutoConfiguration(1)AutoConfigurationPackage(2)Import(AutoConfigurationImportSelector.class) 4.修改默认配置 总结&#xff…

SAP ABAP根据网址跳转至对应的网页

SAP ABAP根据网址跳转至对应的网页 程序代码: DATA: lv_openurl TYPE c LENGTH 300,lv_tempurl TYPE char50." Url可由多个字符串组合lv_openurl https://www.baidu.com/.CALL FUNCTION CALL_BROWSEREXPORTINGurl lv_openurl * WINDOW_…

白炽灯护眼还是led护眼效果好?精选专业护眼台灯

不得不说现在的小孩子近视率是真的很高,根据目前的数据统计全国儿童青少年总体的近视率为52.7%,这个近视率是非常高的!而导致这么多孩子近视的原因有很多,例如长时间学习用眼、玩耍电子产品、不良的用眼习惯等等,其实还…

虚函数表存储的位置(解析C++内存分配及其编译分段)

先上结论:C虚函数表保存在.rdata只读数据段。编译时期由编译器确定虚函数表。虚函数表属于类,类的所有对象共享这个类的虚函数表。 c/c的内存分配 栈(stack):又称堆栈,栈是由编译器自动分配释放&#xf…

hive location更新hive元数据表详解

1.hive location更新方式 一、通过修改表DDL: alter table table_name set location hdfs://nm:8020/table_path 二、直接修改hive 的meta info: update DBS set DB_LOCATION_URI replace(DB_LOCATION_URI,"oldpath","newpath")update SDS…

如何将两台Mac显示器设置为单个屏幕配置

​能够在扩展模式下将两个或多个外部显示器连接到Mac是一种解放的屏幕体验,但当每个显示器仍然像独立显示器一样工作时,会导致沮丧。 在这里,我们向你展示如何通过对系统设置进行一些简单的更改,使两个扩展屏幕看起来像一个屏幕。…

如何get一个终身免费续期的定制数字人?

想拥有一个“数字分身” 吗?给你一个终身免费续期的特权。 定制周期长?训练、运营成本高?成片效果生硬?无法应用于实际场景? 随着AIGC技术的快速发展,虚拟数字人的生成效率不断提高,训练成本逐…

Android平台GB28181接入SDK

华脉智联推出的Android平台GB28181接入SDK,可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工…

苹果和富士康加速撤离的后果显现了,或将失去中国这个最大市场

日前网络流传的消息指特定群体将不能在公众场合使用iPhone,这直接导致苹果的市值暴跌万亿元人民币,凸显出中国市场对苹果的巨大影响,如今中国已是苹果最大的收入来源市场,今年二季度中国首次超过美国成为iPhone销量第一的市场。 苹…

网络协议百科全书:28张图带你搞懂TCP

大家好,我的网工朋友。 不仅仅是网工,只要你是做IT相关的工作,肯定都离不开网络。 那网络中最重要的协议,大概非TCP莫属,谁去面试没被问过网络协议的相关问题? 谁没买过那本最经典的《TCP/IP详解》 。 …

HAM高可用配置及故障切换

1.什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的…

AIGC:【LLM(七)】——Baichuan2:真开源可商用的中文大模型

文章目录 一.模型介绍二.模型部署2.1 CPU部署2.2 GPU部署 三.模型推理3.1 Chat 模型推理3.2 Base 模型推理 四.模型量化4.1 量化方法4.2 在线量化4.3 离线量化4.4 量化效果 五.模型微调5.1 依赖安装5.2 单机训练5.3 多机训练5.4 轻量化微调 一.模型介绍 Baichuan 2 是百川智能…

Learning From Data 中英文对照 1.THE LEARNING PROBLEM (第6页)

1.1. PROBLEM SETUP 图1.3:在二维输入空间中直线可分数据的感知器分类(A)一些训练示例将被错误分类(红色区域的蓝色点,反之亦然),用于定义分离线的权重参数的某些值。(B)。最后一种假设将所有的训练样本分类正确。(O是1,x是-1) …

基于Python和mysql开发的今天吃什么微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的今天吃什么微信小程序(,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目…

Android USB电源管理

The USB peripheral detects the lack of 3 consecutive SOF packets as a suspend request from the USB host. 1 驱动shutdown顺序 系统关机或重启的过程中,会调用设备驱动的shutdown函数来完成设备的关闭操作,有需要的设备可以在驱动中定义该函数。其…

【实操干货】如何开始用Qt Widgets编程?(五)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…