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

Redis通用命令 easy learning

大家好这篇文章带来的是有关Redis的相关内容讲解希望各位能够有所收获~1.set给指定的键Key设置一个值Value覆盖已存在的旧值。set key value类似哈希表一样设置key和value的映射2.get根据键Key获取对应的值Valueget key如果key 不存在返回(nil)等同于空值如果 key 对应的不是字符串类型比如是列表、哈希会报错。值的类型SET/GET只能存字符串但字符串可以是普通文本名字、描述数字年龄、金额JSON 字符串对象数据二进制数据图片、文件3.keys3.1patternpattern模式匹配* --- 0-n个字符匹配? --- 一个字符匹配[^x] --- 除了x的其他 --- [^xy]除了x/y的其他[a-z] --- 匹配a-z[abc] --- 匹配a/b/c --- [a^b] 匹配a/^/b3.2风险keys的时间复杂度O(N)如果使用keys *将在生产环境卡住redis服务器单线程出现大问题导致其他业务瘫痪4.环境办公环境入职公司之后公司给你发个电脑开发环境有的时候开发环境和办公环境是一个有的时候开发环境是单独的服务器测试环境测试工程师使用的线上环境/生产环境线上环境则是外界用户能够访问到的一旦生产环境上出问题一定会对于用户的使用产生影响5.exists判定key是否存在 exists key [key ...]返回key存在的个数 - 针对多个key来说时间复杂度O(1)redis组织这些key就是按照哈希表的方式来组织的redis支持很多数据结构 - 指的是一个value可以是一些复杂度数据结构redis自身的这些键值对是通过哈希表的方式来组织的redis具体的某个值又可以是一些数据结构上面这两种写法分开的写法会产生更多轮次的网络通信和直接操作内存比效率是比较低的成本是比较高的进行网络通信的时候发送方发送一个数据这个数据就要从应用层到物理层层层封装每一层协议都要加上报头或者尾 - 发一个快递要包装一下要包装多层接收方收到一个数据这个数据就要从物理层到应用层层层分用每一层协议中的报头或者尾拆掉 - 收到一个快递要拆快递要拆很多层redis 中很多命令都是支持一次就能操作多个key的多种操作6.del(delete)删除指定的key可以一次删除一个或者多个del key [key ...]时间复杂度O(1)返回值删除的key的个数redis主要的应用场景就是作为缓存此时redis里面存的只是一个热点数据全量数据是在mysql数据库中此时如果把redis中的key删除了几个一般来说问题不大但是当然如果把所有的数据或者一大半数据一下都干没了这种影响就很大了大部分请求直接打给mysql容易把mysql搞挂如果是把redis作为数据库此时就很大了如果redis作为消息队列这种情况误删数据就要视情况而定7.expireexpire key seconds作用是给指定的key设置过期时间key存活时间超出这个指定的值就会被自动删除很多业务场景是有时间限制的 --- 手机验证码这种基于redis实现分布式锁为了避免出现不能正确解锁的情况通常会在加锁的时候设置一下过期时间。所谓使用redis作为分布式锁就是给redis里面写一个特殊的key valueexpire设置的时间单位是秒如果要毫秒这种可以采用pexpireexpire设置的key是要已经存在的被set的设置成功返回1设置失败返回08.ttltime to live 存活时间IP协议报头中就有一个字段TTLIP中的TTL不是用时间衡量过期的而是用次数的这里的就单纯是一个时间 ttl 单位s pttl 单位 ms9.redis的key的过期策略一个redis中可能同时存在很多很多key这些key可能有很大一部分都有过期时间此时redis服务器咋知道哪些key已经过期要被删除哪些key还没过期如果直接遍历所有的key显然是行不通的效率非常低~redis整体策略1.定期删除 - 每次抽取一部分进行验证过期时间保证这个抽取检查足够快避免出现长时间检查导致正常业务被阻塞2.惰性删除 - 假设这个key已经到过期时间了但是暂时还没删它key还存在紧接着后面有一次访问正好用到这个key于是这次访问就会让redis服务器触发删除key的操作同时再返回一个nil虽然有上面两种策略结合整体的效率还是一般仍然可能会有很多过期的key被残留没有及时删除掉redis为了对于上述进行补充还提供了一系列的内存淘汰策略。定时器了解定时器在某个时间到达之后执行指定的任务1.基于优先级队列 / 堆将多个key设置过期时间就可以把这些key加入到一个优先级队列中指定优先级规则是过期时间早的先出队列队首元素就是最早的要过期的key此时定时器中只要分配一个线程让这个线程去检查队首元素看是否过期即可如果队首元素还没过期后续元素一定没过期此时扫描线程不需要遍历所有key只盯住这个队首元素即可另外在扫描检查的时候不能太频繁此时做法就是根据当前时刻和队首元素的过期时间设置一个等待当时间差不多了再唤醒这个线程此时扫描线程不需要高频的扫描队首元素把cpu的开销节省下来了万一在线程休眠的时候来了一个新任务可以在新任务添加的时候唤醒一下刚才的线程重新检查一下队首元素再根据时间差距重新调整阻塞时间即可。2.基于时间轮把时间划分成很多小段划分粒度看实际需求每个小段都挂着一个链表每个链表都代表一个要执行的任务每次隔固定时间间隔走一个格子到了一个格子就去尝试执行下其中的任务对于时间轮来说每个格子是多少时间一共多少个格子都是需要根据实际场景灵活调配的Tips此处仅为扩展redis并未采取上面的方案但是这两种方案都是属于高效的定时器的实现方式很多场景都可能用到在Redis原码中有一个比较核心的机制是事件循环。类似时间轮又有不同10.typeredis所有的key都是string类型key对应的value可能会存在多种类型none, string, list, set, zset, hash 和 stream (redis作为消息队列时使用这个类型的value)等等type key查询对应key的类型时间复杂度O(1)11.查询地址大家要是想要查询对应更多信息最好的就是去官方网站查询网址redis.io希望大家能够有所收获~

相关文章:

Redis通用命令 easy learning

大家好,这篇文章带来的是有关Redis的相关内容讲解,希望各位能够有所收获~ 1.set 给指定的键(Key)设置一个值(Value),覆盖已存在的旧值。 set key value 类似哈希表一样设置key和value的映射 …...

Qt源码编译避坑指南:ARM64平台下解决OpenGL测试失败、中文乱码及超长编译时间

Qt源码编译ARM64平台深度优化:解决OpenGL异常、中文乱码与编译效率瓶颈 麒麟系统特有的图形库兼容性问题往往让开发者措手不及。当你在飞腾D2000处理器上执行./configure时突然弹出"the opengl functionality tests failed"红色警告,这背后可能…...

华硕笔记本终极控制方案:G-Helper 3分钟快速上手指南

华硕笔记本终极控制方案:G-Helper 3分钟快速上手指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sca…...

PD-1 Blocking抗体如何重启抗肿瘤免疫?

一、PD-1信号通路在肿瘤免疫中扮演什么角色?PD-1是表达于活化T细胞表面的抑制性受体,其配体PD-L1在多种肿瘤细胞及肿瘤微环境中的抗原呈递细胞上高表达。当PD-1与PD-L1结合后,通过招募SHP-2磷酸酶,抑制T细胞受体及CD28信号通路&am…...

【电力系统】基于萤火虫算法FA的太阳能风能水力混合抽水蓄能系统(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

保姆级教程:在Ubuntu 20.04 ROS Noetic下,用奥比中光Astra Pro摄像头完成棋盘格标定(附常见报错解决)

奥比中光Astra Pro摄像头ROS标定实战指南:从零到精准 引言 在机器人视觉和三维感知领域,摄像头标定是构建可靠感知系统的第一步。奥比中光Astra Pro作为一款高性价比的体感摄像头,广泛应用于SLAM、手势识别、三维重建等场景。本文将手把手带你…...

美伊冲突下A股三阶段复盘:“科技缩圈”与“泛能源对冲”成投资主线

A股三阶段复盘:从全面冲击到成长领涨自3月初美伊冲突升级以来,A股市场大致经历了三个阶段。3月初至3月23日左右是“全面冲击与能源安全定价”阶段,冲突爆发使A股市场经历全面调整,周期板块领跌,而能源安全相关的传统旧…...

2026在校大学生可以考哪些大数据专业证书?

新学期开始后,关于“大学期间该准备哪些证书”的讨论总能在校园里听到。对于大数据相关专业的在校生而言,面对技术快速迭代的行业环境,如何利用课余时间提前做些准备,用证书为自己的学习成果做个阶段性总结,成为不少人…...

WPS-Zotero终极指南:5分钟实现WPS与Zotero无缝文献管理

WPS-Zotero终极指南:5分钟实现WPS与Zotero无缝文献管理 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为学术论文的文献引用而烦恼吗?WPS-Zoter…...

VisualCppRedist AIO终极指南:3步解决Windows程序启动失败的完整教程

VisualCppRedist AIO终极指南:3步解决Windows程序启动失败的完整教程 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否遇到过新下载的游戏无法启…...

HTML转DOCX终极方案:企业级文档自动化转换完整指南

HTML转DOCX终极方案:企业级文档自动化转换完整指南 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 在数字化办公时代,HTML内容与Word文档之间的格式转换已成为企业文档处理的核…...

LFM2.5-VL-1.6B基础教程:config.json核心参数含义与微调入口点

LFM2.5-VL-1.6B基础教程:config.json核心参数含义与微调入口点 1. 模型概述 LFM2.5-VL-1.6B是Liquid AI发布的一款轻量级多模态大模型,专为端侧和边缘设备设计。这个模型结合了1.2B参数的语言模型和约400M参数的视觉模型,总参数量为1.6B&am…...

ChanlunX缠论插件:5分钟搞定通达信缠论分析的终极指南

ChanlunX缠论插件:5分钟搞定通达信缠论分析的终极指南 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否曾在通达信中手动绘制缠论分析感到疲惫?是否因为复杂的笔段划分而错过…...

告别apt install:手动编译安装MySQL 5.7在Ubuntu上的完整配置与性能调优

告别apt install:手动编译安装MySQL 5.7在Ubuntu上的完整配置与性能调优 在数据库管理的世界里,预编译的二进制包虽然方便,却像是一套现成的西装——永远无法完美贴合你的身形。对于追求极致性能和控制力的开发者或DBA来说,手动编…...

小说下载器:一键保存200+网站小说,打造永不消失的个人数字图书馆

小说下载器:一键保存200网站小说,打造永不消失的个人数字图书馆 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字阅读时代,你是否曾经历过心…...

别再用pip直接装了!用Anaconda给LabelImg创建专属虚拟环境,告别闪退和版本冲突

别再用pip直接装了!用Anaconda给LabelImg创建专属虚拟环境,告别闪退和版本冲突 如果你曾经在安装LabelImg时遇到过闪退、报错或者莫名其妙的版本冲突,这篇文章就是为你准备的。作为一个长期与Python环境打交道的开发者,我深刻理解…...

3步构建:用Finnhub Python打造专业金融数据系统

3步构建:用Finnhub Python打造专业金融数据系统 【免费下载链接】finnhub-python Finnhub Python API Client. Finnhub API provides institutional-grade financial data to investors, fintech startups and investment firms. We support real-time stock price,…...

中兴光猫配置解密工具实战指南:企业级网络设备安全配置深度解析

中兴光猫配置解密工具实战指南:企业级网络设备安全配置深度解析 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder ZET-Optical-Network-Terminal-Decoder 是一款…...

盟接之桥®电子数据交换EDI,如何用一套“数字桥梁”,让全球巨头主动为你敞开大门?

在全球经济一体化的宏大叙事下,中国制造业正站在历史的十字路口。从“中国制造”到“中国智造”,这不仅仅是称谓的更迭,更是产业链地位的跃迁。然而,在这条通往全球价值链高端的道路上,无数制造企业面临着同一个隐秘而…...

安卓15分享Wi-Fi二维码能换颜色吗?自定义颜色方法

在安卓15系统中,通过“附近分享”或“快速分享”功能来共享Wi-Fi密码变得非常方便,只需一个二维码就能让朋友轻松连接。系统生成的二维码界面通常会自动匹配你的手机主题色,看起来挺美观。但很多用户想知道:我能自己定义这个二维码…...

CH58x蓝牙芯片DataFlash读写避坑指南:从字节到扇区的正确操作姿势

CH58x蓝牙芯片DataFlash读写避坑指南:从字节到扇区的正确操作姿势 在嵌入式开发中,DataFlash的高效管理一直是工程师面临的挑战之一。沁恒CH58x系列蓝牙芯片凭借其优异的性能和丰富的功能,在蓝牙Mesh领域广受欢迎。然而,其DataFl…...

从拖拉机到挖掘机:聊聊J1939协议在非道路机械里的那些‘方言’和实战配置

从拖拉机到挖掘机:J1939协议在非道路机械中的差异化实践与兼容性解决方案 当一台约翰迪尔拖拉机的发动机控制模块向液压系统发送扭矩请求时,卡特彼勒挖掘机的控制单元可能完全无法理解这条看似标准的J1939报文。这不是协议本身的缺陷,而是重型…...

SAML2.0实战避坑:从HTTP Redirect到Artifact Binding,三种通信绑定方式怎么选?

SAML2.0绑定方式深度解析:从技术原理到企业级选型实战 当企业IT架构师在设计单点登录系统时,总会遇到一个关键决策点:如何选择SAML协议的通信绑定方式?这个问题看似简单,实则牵一发而动全身。我曾见证过某金融机构因为…...

从“翻车”到“神图”:我的Stable Diffusion提示词避坑与调优笔记(附Lora使用心得)

从“翻车”到“神图”:我的Stable Diffusion提示词避坑与调优笔记 深夜三点,屏幕上的AI少女长着七根手指,背景里漂浮着半截手臂——这已经是我今晚第十七张“恐怖片剧照”了。作为从MidJourney转战Stable Diffusion的老玩家,我经历…...

容器存储容量告急?Docker 27.2正式支持Runtime-Driven Volume Resize——这是你最后掌握自动弹性伸缩能力的机会

第一章:容器存储容量告急?Docker 27.2正式支持Runtime-Driven Volume Resize——这是你最后掌握自动弹性伸缩能力的机会Docker 27.2 是首个将卷(Volume)运行时动态扩容能力下沉至 containerd shim 层的稳定版本。无需重启容器、无…...

别再只关心压差了!手把手教你读懂LDO数据手册里的PSRR、噪声与环路稳定性

别再只关心压差了!手把手教你读懂LDO数据手册里的PSRR、噪声与环路稳定性 当你在为精密传感器挑选LDO时,是否曾被数据手册里PSRR曲线上的高频衰减困扰过?或是面对噪声频谱密度图表时无从下手?压差参数固然重要,但真正决…...

思源宋体TTF:零成本获取专业中文排版终极方案

思源宋体TTF:零成本获取专业中文排版终极方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目的字体选择而苦恼吗?商业字体价格高昂&#xf…...

TBS1102B示波器测电压,这5个新手常踩的坑你避开了吗?(附正确设置流程)

TBS1102B示波器测电压:5个隐蔽陷阱与专业级解决方案 第一次接触泰克TBS1102B示波器时,我盯着屏幕上跳动的波形百思不得其解——明明按照说明书连接了电路,为什么测得的电压值与万用表相差30%?直到导师指出我忽略了探头的衰减比设置…...

从IFA到PIFA:揭秘天线小型化与抗干扰背后的结构演进

1. 从IFA到PIFA:天线小型化的技术革命 十年前我刚入行做手机天线设计时,IFA(倒F天线)还是行业标配。记得第一次调试2.4GHz WiFi天线,Smith圆图上那个疯狂跳动的阻抗点让我抓狂——频段边缘的匹配简直像在走钢丝。这种单…...

Cursor AI破解工具终极指南:免费解锁Pro功能的完整解决方案

Cursor AI破解工具终极指南:免费解锁Pro功能的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached you…...