当前位置: 首页 > article >正文

Redis 只会用缓存?16种妙用让同事直呼牛X

1、缓存String 类型例如热点数据缓存例如报表、明星出轨对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String 类型因为 Redis 是分布式的独立服务可以在多个应用之间共享例如分布式 Sessiondependency groupIdorg.springframework.session/groupId artifactIdspring-session-data-redis/artifactId /dependency3、分布式锁String 类型 setnx 方法只有不存在时才能添加成功返回 truepublic static boolean getLock(String key) { Long flag jedis.setnx(key, 1); if (flag 1) { jedis.expire(key, 10); } return flag 1; } public static void releaseLock(String key) { jedis.del(key); }4、全局 IDint 类型incrby利用原子性incrby userid 1000分库分表的场景一次性拿一段5、计数器int 类型incr 方法例如文章的阅读量、微博点赞数、允许一定的延迟先写入 Redis 再定时同步到数据库6、限流int 类型incr 方法以访问者的 ip 和其他信息作为 key访问一次增加一次计数超过次数则返回 false7、位统计String 类型的 bitcount1.6.6 的 bitmap 数据结构介绍字符是以 8 位二进制存储的set k1 a setbit k1 6 1 setbit k1 7 0 get k1 /* 6 7 代表的 a 的二进制位的修改 a 对应的 ASCII 码是 97转换为二进制数据是 01100001 b 对应的 ASCII 码是 98转换为二进制数据是 01100010 因为 bit 非常节省空间1 MB8388608 bit可以用来做大数据量的统计。 */例如在线用户统计留存用户统计setbit onlineusers 01 setbit onlineusers 11 setbit onlineusers 20支持按位与、按位或等等操作BITOPAND destkey key [key ...] 对一个或多个 key 求逻辑并并将结果保存到 destkey 。 BITOPOR destkey key [key ...] 对一个或多个 key 求逻辑或并将结果保存到 destkey 。 BITOPXOR destkey key [key ...] 对一个或多个 key 求逻辑异或并将结果保存到 destkey 。 BITOPNOT destkey key 对给定 key 求逻辑非并将结果保存到 destkey 。计算出 7 天都在线的用户BITOP AND 7_days_both_online_users day_1_online_users day_2_online_users ... day_7_online_users8、购物车String 或 hash。所有 String 可以做的 hash 都可以做购物车数据结构key用户 idfield商品 idvalue商品数量。1hincr。-1hdecr。删除hdel。全选hgetall。商品数hlen。9、用户消息时间线 timelinelist双向链表直接作为 timeline 就好了。插入有序10、消息队列List 提供了两个阻塞的弹出操作blpop/brpop可以设置超时时间blpopblpop key1 timeout 移除并获取列表的第一个元素如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。brpopbrpop key1 timeout 移除并获取列表的最后一个元素如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。上面的操作。其实就是 java 的阻塞队列。学习的东西越多。学习成本越低队列先进先除rpush blpop左头右尾右边进入队列左边出队列栈先进后出rpush brpop11、抽奖自带一个随机获得值spop myset12、点赞、签到、打卡点赞数据结构假如上面的微博 ID 是 t1001用户 ID 是 u3001用 like:t1001 来维护 t1001 这条微博的所有点赞用户点赞了这条微博sadd like:t1001 u3001取消点赞srem like:t1001 u3001是否点赞sismember like:t1001 u3001点赞的所有用户smembers like:t1001点赞数scard like:t1001是不是比数据库简单多了。13、商品标签商品标签示例老规矩用 tags:i5001 来维护商品所有的标签。sadd tags:i5001 画面清晰细腻sadd tags:i5001 真彩清晰显示屏sadd tags:i5001 流程至极14、商品筛选// 获取差集 sdiff set1 set2 // 获取交集intersection sinter set1 set2 // 获取并集 sunion set1 set2商品筛选示例假如iPhone11 上市了sadd brand:apple iPhone11 sadd brand:ios iPhone11 sad screensize:6.0-6.24 iPhone11 sad screentype:lcd iPhone 11筛选商品苹果的、ios 的、屏幕在 6.0-6.24 之间的屏幕材质是 LCD 屏幕sinter brand:apple brand:ios screensize:6.0-6.24 screentype:lcd15、用户关注、推荐模型follow 关注 fans 粉丝相互关注sadd 1:follow 2sadd 2:fans 1sadd 1:fans 2sadd 2:follow 1我关注的人也关注了他取交集sinter 1:follow 2:fans可能认识的人用户 1 可能认识的人差集sdiff 2:follow 1:follow用户 2 可能认识的人sdiff 1:follow 2:follow16、排行榜id 为 6001 的新闻点击数加 1zincrby hotNews:20190926 1 n6001获取今天点击最多的 15 条zrevrange hotNews:20190926 0 15 withscores

相关文章:

Redis 只会用缓存?16种妙用让同事直呼牛X

1、缓存String 类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享例如&…...

Vivado收费IP核怎么选?从以太网到视频接口,这份避坑指南帮你省下冤枉钱

Vivado收费IP核选型实战指南:从以太网到视频接口的避坑策略 在FPGA项目开发中,IP核的选择往往决定了整个项目的成败。面对Vivado中琳琅满目的收费IP核,工程师们常常陷入两难:既要确保功能完备,又要控制成本。本文将带你…...

考虑需求响应的微网优化调度MATLAB程序:基于粒子群算法,包含风力、光伏、储能等多主体模块化...

考虑需求响应的微网优化调度matlab 程序采用粒子群算法,风力发电机、光伏发电机、储能装置、燃气轮机、柴油机组等主体,考虑负荷需求响应、soc约束等,程序模块化编程,注释清楚,有对应资料概述 本文介绍了一套基于粒子群…...

跑不出密码别怪字典!实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧

跑不出密码别怪字典!实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧 当你盯着终端里aircrack-ng跑包的进度条,看着它缓慢地遍历字典却始终无法命中正确密码时,那种挫败感每个渗透测试者都深有体会。但问题真的出在字典上吗&…...

基于Matlab Simulink的单相PWM整流器仿真模型:全桥整流,电压电流PI双闭环控制...

单相PWM整流器仿真模型 单相全桥整流 电压电流PI双闭环 输出电压可调 输入交流220V/50Hz,输出直流电压可调 Maltab/simulink玩过电力电子的老铁们肯定对PWM整流器不陌生。今天咱们来撸一个单相全桥PWM整流器的Simulink仿真,支持输出电压连续可调的那种。先上张主电…...

告别默认丑样式!手把手教你用WPF的ControlTemplate打造高颜值TreeView(附完整XAML代码)

从零打造高颜值WPF TreeView:深度定制ControlTemplate实战指南 每次打开Visual Studio新建WPF项目时,看到那个灰头土脸的默认TreeView控件,总有种说不出的失落感。作为数据展示的核心控件之一,TreeView在文件浏览器、配置面板、数…...

告别Steam清单配置烦恼:Onekey智能配置工具的优雅解决方案

告别Steam清单配置烦恼:Onekey智能配置工具的优雅解决方案 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 作为游戏开发者或资深玩家,你是否曾因Steam游戏清单配置而头疼…...

319嵌入式

1.关于lcd的时序图,为什么读操作时,vaild data在E拉高后,而写操作vaild data 在E拉高前写操作:数据必须在 E 上升沿之前稳定(因为 LCD 要”有效采样”) 读操作:数据在 E 拉高之后才有效&#xf…...

Python MCP模板的“最后一公里”难题:K8s ServiceMesh集成、gRPC透明代理、证书自动轮转——全链路演示

第一章:Python MCP模板的企业级定位与架构全景Python MCP(Model-Controller-Plugin)模板并非通用Web框架的变体,而是专为企业级中台系统设计的可扩展服务骨架。它聚焦于解耦业务模型、控制逻辑与插件化能力扩展,适用于…...

电商客服效率翻倍秘籍:RexUniNLU零样本抽取订单关键信息实战

电商客服效率翻倍秘籍:RexUniNLU零样本抽取订单关键信息实战 1. 电商客服的痛点与解决方案 电商客服每天面对海量用户咨询,其中订单查询类问题占比高达40%以上。传统处理方式存在三大痛点: 人工处理效率低:客服需要反复询问订单…...

AI Agent的上下文窗口限制突破技巧

AI Agent的上下文窗口限制突破技巧 关键词:AI Agent, 上下文窗口, 大型语言模型, 记忆管理, 向量数据库, 提示工程, 检索增强生成 摘要:随着AI Agent在各个领域的广泛应用,上下文窗口限制已成为制约其能力发展的关键瓶颈。本文将深入探讨AI Agent上下文窗口限制的本质问题,…...

避坑!这些毕设太好抄了,3000+毕设案例推荐第1038期

381、基于Java的对外公告智慧管理系统的设计与实现(论文+代码+PPT)对外公告智慧管理系统主要功能包括:会员管理、公告管理、审核任务、审核节点、审核日志、回复管理、通知管理、通知接收者、工作流管理、组织机构、消息推送、消息推送接收者…...

车载Linux环境下C++信号处理崩溃频发?一线团队紧急封存的6条SIGSEGV防御清单,已拦截17起量产事故

第一章:车载Linux环境下C信号处理崩溃的典型现象与量产影响在车载Linux系统中,C应用常因信号处理不当引发不可恢复的崩溃,尤其在ASIL-B及以上安全等级的ECU中,此类问题可能直接导致功能降级或安全机制误触发。典型现象包括&#x…...

告别重复编码:用快马平台内置codex服务高效生成日常开发代码片段

今天想和大家分享一个提升开发效率的实用技巧——如何利用智能工具告别重复编码的烦恼。作为开发者,我们每天都要写大量重复的样板代码,比如创建数据类、编写单元测试模板、定义React组件等。这些工作虽然简单,但累积起来会消耗大量时间。 传…...

告别重复编码:用快马AI为你的.NET项目自动生成高效工具类与模板

今天想和大家分享一个.NET开发中的效率提升小技巧——如何用自动化工具快速生成常用工具类代码。作为一个经常需要重复编写类似功能的后端开发者,我发现合理使用代码生成工具可以节省大量时间,让我们把精力集中在更有价值的业务逻辑上。 分页响应类的设…...

JAVA面试-JVM内存结构详解

Java虚拟机(JVM)内存结构,也称内存模型,是程序运行时的数据存储区域。根据《Java虚拟机规范》,可划分为线程私有和线程共享两大部分,以实现高效的内存管理和线程安全。其主要构成如下表所示: 内…...

使用 winget 卸载 SQLiteStudio:从命令到细节的完整指南

一条命令安装,一条命令卸载——winget 让 Windows 软件管理变得前所未有的简单 前言 SQLiteStudio 是一款轻量、跨平台的 SQLite 数据库管理工具,因其简洁的界面和强大的功能,深受开发者喜爱。在 Windows 上,越来越多的人选择通过微软官方包管理器 winget 来安装它: win…...

淘宝 API 技术架构与实战指南:从实时数据流到 AIGC 融合的电商开发新范式

在数字经济加速渗透的今天,淘宝开放平台 API 已从简单的数据交互工具进化为支撑电商创新的核心基础设施。2025 年,淘宝 API 体系迎来重大技术跃迁,实时数据流、GraphQL 接口与隐私合规构成新的技术三角,推动电商开发进入 "毫…...

PyCharm 是 JetBrains 推出的专业 Python 集成开发环境(IDE),分为免费的 Community 版和功能更全面的 Professional 版

PyCharm 是 JetBrains 推出的专业 Python 集成开发环境(IDE),分为免费的 Community 版和功能更全面的 Professional 版。其核心优势在于深度集成多种现代开发工具链: ✅ Python 支持:智能代码补全、实时错误检查、重构…...

AGI 主要技术路径及核心技术:归一融合及未来之路6

七、其他新兴路径(一)因果表示学习核心理念:智能的核心是理解世界的因果机制,而非仅仅识别统计关联。该路径旨在让AI模型学会像人类一样,构建因果关系图,进行反事实推理(思考“如果当时…会怎样…...

2026.04.02随记

1、DL1、反向传播(backward propagation):是计算网络参数梯度的方法,用链式法则,从输出层到输入层遍历,算出每个参数该怎么改。反向传播中每一个记录的梯度都是该函数的导数。梯度下降不等于反向传播&#…...

WeChatMsg终极方案:构建个人微信数据管理中心

WeChatMsg终极方案:构建个人微信数据管理中心 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

Arm_Cortex-M3权威指南

这本权威指南只是对应某一种具体的处理器内核,深入一种处理器内核对于我们理解整个ARM架构大有帮助 书籍资源在下面的链接 Arm_Cortex-M3权威指南 第2章 Cortex-M3概览 简介 Cortex-M3是一个32位处理器内核。内部的数据路径是32位,寄存器是32位&…...

基于Stackelberg博弈与需求响应的光伏用户群内部优化定价模型研究

MATLAB代码:基于Stackelberg博弈的光伏用户群优化定价模型关键词:光伏用户群 内部电价 需求响应 斯塔克伯格博弈 参考文档:《基于Stackelberg博弈的光伏用户群优化定价模型》王程 刘念 仿真平台:MATLAB Cplex 主要内容&#xff1…...

做自媒体,如何从“不会写”到“持续输出”

我刚开始做自媒体的时候,最大的问题不是“没东西写”,而是“不知道怎么写”。素材准备好了,选题也定了,打开文档,光标一闪一闪,脑子里一片空白。第一句话该说什么?怎么开头才不枯燥?…...

虚幻引擎6.5 C++多线程渲染管线深度解密,揭秘Nanite+Lumen底层Hook点与自定义RenderPass安全注入时机

第一章:虚幻引擎6.5多线程渲染管线架构总览虚幻引擎6.5标志着渲染架构的重大演进,其核心是完全重写的多线程渲染管线(Multi-Threaded Rendering Pipeline),旨在最大化现代CPU多核并行能力与GPU异步执行潜力。该管线采用…...

Amazon日本站、欧洲站A+内容翻译怎么做?跨马翻译在多站点运营中的实际应用

【一、从一次上架被拒说起】上个月帮一个做家居品类的卖家朋友处理欧洲站上架问题,他花了两周精心设计的A页面被Amazon审核退回,原因只有一句话:"Please ensure all images contain text in the target marketplace language."&…...

棒板电极流注放电与氩气等离子体仿真的COMSOL研究

棒板电极流注放电, COMSOL,氩气形成的贯穿流注 氩气放电等离子体仿真。在高压实验室里见过那种细金属棒和接地板之间突然爆发的紫色放电吗?那玩意儿专业名称叫棒板电极流注放电。今天咱们用COMSOL扒开这朵"电火花"的外衣&#xff0…...

别再手写MCP适配层了!2024最新Python企业模板已内置SPI扩展点、链路追踪埋点与熔断降级策略

第一章:MCP服务器开发模板的演进与企业级定位 MCP(Model-Controller-Protocol)服务器开发模板并非静态规范,而是随云原生架构、服务网格与可观测性实践的深化持续演进的技术基座。早期版本聚焦于HTTP路由与基础中间件封装&#xf…...

为什么你的医疗3D体绘制在NVIDIA A100上仍掉帧?——解析CUDA流同步、纹理缓存对齐与HIP-Clang跨编译器ABI兼容性三大致命盲区

第一章:医疗3D体绘制性能瓶颈的临床级认知 在手术导航、放射治疗计划与介入影像诊断等临床场景中,3D体绘制(Volume Rendering)并非仅关乎视觉保真度,而是直接关联决策时效性与操作安全性。当CT或MRI体数据分辨率超过51…...