redis
文章平均质量分 66
快点好好学习吧
当你遇到困难时,这正是成长的机会。Happy coding!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
$redis->setex(“train:{$trainId}:seats“, 30, $available);的庖丁解牛
高频读数据必用SETEX空值场景缓存 0 并延长 TTL更新时先 DB 后删缓存因为最好的缓存设计,不是盲目存储,而是精准控制每一比特的流动。原创 2026-03-03 00:13:59 · 492 阅读 · 0 评论 -
local available = redis.call(‘GET‘, KEYS[1])的庖丁解牛
所有必须检查 nil数值比较前用tonumber()转换关键脚本用pcall()包裹因为最好的原子操作,不是盲目读取,而是精准控制每一比特的信任。原创 2026-02-28 13:41:33 · 560 阅读 · 0 评论 -
$locked = $redis->eval(的庖丁解牛
所有eval()必须替换为evalSha()Lua 脚本中强制类型转换脚本执行时间 < 1ms因为最好的原子操作,不是盲目执行,而是精准控制每一比特的信任。原创 2026-02-28 13:41:19 · 512 阅读 · 0 评论 -
零基础从零到一对Redis QPS进行压测的庖丁解牛
压测前关闭 Redis 持久化用测基线,memtier测复杂场景必须监控 CPU/网络/Redis stat 三指标因为最好的性能验证,不是盲目压测,而是精准控制每一比特的信任。原创 2026-02-24 17:04:43 · 252 阅读 · 0 评论 -
$payload = $redis->brPop([‘payment_queue‘], 30);的庖丁解牛
所有队列消费必用BRPOP必须处理超时返回任务必须幂等 + 有死信队列因为最好的任务处理,不是盲目弹出,而是精准控制每一比特的信任。原创 2026-02-24 17:04:21 · 377 阅读 · 0 评论 -
redis-cli info可以查看缓存命中率吗?
可以查看 Redis 缓存命中率,但不是直接显示“命中率%”,而是通过 和 两个计数器计算得出。运行以下命令:你会看到类似输出::命中缓存的请求数(GET 成功找到 key);:未命中缓存的请求数(GET 未找到 key);二、计算缓存命中率公式:✅ 示例:命中率 = 9000 / (9000 + 1000) = 90%🔧 一行命令计算(Linux/macOS):输出:三、工程实践:命中率监控阈值命中率状态建议≥ 95%✅ 健康无需干原创 2026-01-01 16:12:18 · 714 阅读 · 0 评论 -
redis到底算不算共享内存,知识体系一共包含哪些部分及其详解?底层原理是什么?
不属于操作系统共享内存:Redis是独立的内存数据库,客户端需通过TCP协议与Redis交互,而非直接访问物理内存。可作为分布式共享内存:Redis为多进程/多主机提供数据共享能力,内置数据结构、同步、持久化等功能,比操作系统共享内存更易用、更强大。原创 2025-09-28 07:42:34 · 848 阅读 · 0 评论 -
$lock = Redis::set($lockKey, 1, ‘EX‘, 10, ‘NX‘);,知识体系一共包含哪些部分?
这行代码看似简单,实则是利用Redis的单线程特性和原子操作,实现了分布式系统中的"交通信号灯"——让并发请求按顺序通过关键节点,避免混乱。理解它的核心价值后,你在处理高并发场景时,就不会再依赖"加锁全凭运气"的粗放方式,而是能通过这种可靠的分布式锁,在保证数据安全的同时,最大化系统的并发能力。这正是高并发开发中"控制"与"效率"平衡的体现。原创 2025-09-16 17:02:57 · 616 阅读 · 0 评论 -
NoSQL可以实现银行转账吗,知识体系一共包含哪些部分?
NoSQL可以实现银行转账,但需要针对原子性、一致性、持久性做额外设计,且通常只适合非核心业务。它的价值不在于替代关系型数据库,而在于在特定场景(如高并发查询、灵活结构)中补充其不足。选择技术时,关键不是"能不能用",而是"是否最适合"——就像用扳手能拧螺丝,但用螺丝刀更高效。银行转账这类对事务要求极高的场景,关系型数据库仍是更稳妥的选择,而NoSQL则在其他场景中发挥其优势。原创 2025-09-14 22:30:13 · 881 阅读 · 0 评论 -
NoSQL的前世今生,知识体系一共包含哪些部分?
NoSQL的出现不是为了颠覆关系型数据库,而是为数据存储提供了更多选择。它通过"有所不为"实现"有所为"——放弃通用功能,换取在海量数据、高并发、灵活结构等场景下的优异表现。理解NoSQL的关键是认识到:没有放之四海而皆准的存储方案。就像建筑施工需要不同工具(锤子、锯子、扳手),数据存储也需要根据业务场景选择合适的工具,有时甚至需要多种工具配合使用。NoSQL的价值,正在于为特定场景提供了更精准的解决方案。原创 2025-09-14 22:18:27 · 1086 阅读 · 0 评论 -
redis代码如何被计算机执行,知识体系一共包含哪些部分?
Redis代码的执行流程是“接收命令→解析命令→操作数据→返回结果”的高效循环,核心靠“单线程+内存存储+优化数据结构”实现高性能。写出更高效的Redis操作代码(如避免大键、合理选择数据类型);排查Redis性能问题(如命令阻塞、内存碎片);更好地结合PHP与Redis(如利用连接池减少连接开销)。就像了解快递驿站的运作后,你会知道“怎么寄件更快、怎么查件不排队”,使用Redis时也能做到“怎么操作更高效、怎么避免性能瓶颈”。原创 2025-09-06 09:32:09 · 938 阅读 · 0 评论 -
哈希槽,知识体系一共包含哪些部分?
作为PHP程序员,你日常可能会用Redis存储会话数据、缓存查询结果,而哈希槽(Hash Slot)正是Redis集群实现数据分布式存储的核心机制。咱们可以从“它解决什么问题”“具体包含哪些内容”“底层如何工作”这几个角度,一步步把它讲清楚,就像拆解你熟悉的PHP业务逻辑一样。原创 2025-09-05 08:51:46 · 762 阅读 · 0 评论 -
Redis 集群必须使用不同的端口吗,知识体系一共包含哪些部分?
同一服务器上的节点必须用不同端口,不同服务器上的节点可以用相同端口。这是由操作系统的网络机制决定的——端口确保同一服务器内的程序不冲突,而“IP+端口”的组合确保全网范围内的程序能被唯一识别。理解这个规则,就能正确规划集群的端口配置,避免启动失败或通信故障。就像合理分配分机号能确保电话系统顺畅运行,合理分配端口是Redis集群稳定工作的基础。原创 2025-09-05 07:25:30 · 965 阅读 · 0 评论 -
redis 数据类型和使用场景,知识体系一共包含哪些部分?底层原理是什么?
Redis 的数据类型本质是基于内存的高效数据结构实现,通过String、Hash、List、Set、Sorted Set 五大核心类型和Bitmaps、HyperLogLog、Streams、Geospatial 四大扩展类型,支持缓存、会话、计数器、排行榜、消息队列、地理位置等丰富场景,其底层通过定制数据结构、单线程模型、原子操作、持久化机制实现高性能与高可用,是现代应用架构中不可或缺的“多功能数据引擎”。原创 2025-08-12 09:19:56 · 771 阅读 · 0 评论 -
Redis hyperloglog 越界写入致远程代码执行漏洞,知识体系一共包含哪些部分?底层原理是什么?
Redis 的 HyperLogLog 是一种用于基数估算(Cardinality Estimation)的数据结构,能够以极低的内存占用估算集合中唯一元素的数量。通过以上方法,开发者可以全面掌握 Redis HyperLogLog 越界写入漏洞的知识体系和底层原理,为构建安全、可靠的 Redis 环境提供理论支持和实践经验。Redis HyperLogLog 越界写入漏洞的底层原理涉及 Redis 内部实现、内存管理、网络协议以及攻击向量等多个层面。原创 2025-08-01 11:05:46 · 741 阅读 · 0 评论 -
redis服务器断电后恢复数据的底层实现是怎样的?
【代码】redis服务器断电后恢复数据的底层实现是怎样的?原创 2025-05-25 09:08:40 · 1190 阅读 · 0 评论 -
$redis->set(‘lock‘, $clientId, [‘nx‘, ‘ex‘ => 5]);如何实现全流程秒杀系统?
【代码】$redis->set(‘lock‘, $clientId, [‘nx‘, ‘ex‘ => 5]);如何实现全流程秒杀系统?原创 2025-05-21 12:43:47 · 578 阅读 · 0 评论 -
Redis的数据类型到底是干什么的?一共包含哪些部分?
【代码】Redis的数据类型到底是干什么的?一共包含哪些部分?原创 2025-05-21 12:43:38 · 932 阅读 · 0 评论 -
Redis的哈希(Hash)数据类型到底是干什么的?
【代码】Redis的哈希(Hash)数据类型到底是干什么的?原创 2025-05-21 12:43:28 · 980 阅读 · 0 评论 -
Redis的哈希(Hash)和SET数据类型的异同到底是什么?
【代码】Redis的哈希(Hash)和SET数据类型的异同到底是什么?原创 2025-05-21 12:43:18 · 1093 阅读 · 0 评论 -
Redis的哈希(Hash)和字符串数据类型的异同到底是什么?
【代码】Redis的哈希(Hash)和字符串数据类型的异同到底是什么?原创 2025-05-21 12:43:07 · 933 阅读 · 0 评论 -
Redis的列表数据类型到底是干什么的?
【代码】Redis的列表数据类型到底是干什么的?原创 2025-05-21 12:42:19 · 439 阅读 · 0 评论 -
Redis的lRange到底是干什么的?一共包含哪些部分?
【代码】Redis的lRange到底是干什么的?一共包含哪些部分?原创 2025-05-21 12:42:07 · 793 阅读 · 0 评论 -
redis布式锁锁的续约到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?
想象一下,你正在玩一个很有趣的游戏,但是游戏规定你只能玩一会儿就得把玩具让给别人。可是你觉得这个游戏太好玩了,还想继续玩,那怎么办呢?你就需要去跟管理员说,让他给你延长一些时间,这样你就可以接着玩啦。在Redis分布式锁里呀,这个锁也有个时间限制,就像你玩游戏的时间限制一样。如果你的任务还没有做完,锁就到期了,那别人就可能会来抢这个锁,然后去做和你一样的事情,这样就会出问题啦。原创 2025-04-21 00:07:55 · 1491 阅读 · 0 评论 -
redis布式锁为什么叫分布式锁?到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?
这时候就可以用Redis分布式锁,让每个程序在写数据之前先获取锁,拿到锁的程序才能写,这样就不会把数据写乱啦。想象一下,有很多个小朋友在不同的地方一起玩游戏,他们都需要玩一个特别的玩具,但是这个玩具只有一个。Redis分布式锁就是这样一个规则,它可以让在不同地方(不同的服务器或者不同的程序)的小朋友(程序)知道谁可以使用这个“玩具”(资源),所以叫分布式锁呀。就像刚才说的玩具一样,保证每次只有一个程序能使用这个资源,等它用完了,其他程序才能用,这样就不会把事情搞乱啦。原创 2025-04-21 00:07:43 · 747 阅读 · 0 评论 -
$redis->decr到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
就像是吃糖果这个动作,它可以让Redis里存储的一个数字减少1。比如说,Redis里存着一个数字10,你用了。想象一下,你有一盒糖果,每次你想吃一颗糖果的时候,糖果的数量就会变少一个。,这个数字就会变成9啦。原创 2025-04-21 00:07:31 · 549 阅读 · 0 评论 -
$redis = new \Redis();到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
这行代码是在创建一个可以和Redis数据库“对话”的东西哦,就好像你要和一个小伙伴说话,得先找到这个小伙伴一样。这里就是在创建一个能让你的PHP程序找到Redis数据库,然后和它交流的“小使者”,我们把它叫做。只要你想让你的PHP程序和Redis数据库一起工作,就需要用这行代码来创建这个“小使者”呀。原创 2025-04-21 00:07:21 · 449 阅读 · 0 评论 -
$redis->setnx到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
就像是往这个小盒子里放宝贝的规则。只有当盒子是空的时候,你才能把宝贝放进去;要是盒子里已经有宝贝了,就不能再放啦。在Redis里,它就是用来设置一个键值对的,不过只有当这个键还不存在的时候才能设置成功。想象一下,你有一个小盒子,这个盒子一次只能放一个宝贝。原创 2025-04-21 00:06:54 · 555 阅读 · 0 评论 -
$redis->expire到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
想象一下,你有一个小秘密写在一张纸条上,然后把纸条放在一个有时间锁的盒子里。这个时间锁规定了纸条只能在盒子里待一段时间,过了这个时间,纸条就会自动消失。就像这个时间锁,它能给Redis里存的东西(键值对)设置一个存在的时间,时间到了,这个键值对就会自动从Redis里消失。原创 2025-04-21 00:06:39 · 439 阅读 · 0 评论 -
redis到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
Redis就像是一个超级大的魔法盒子,你可以往里面放各种各样的东西,比如数字、文字、图片的小信息等等。而且,你放进去之后,还能很快地把它们拿出来。很多不同的程序都能一起用这个魔法盒子,就像好多小朋友一起用一个大玩具箱一样。原创 2025-04-21 00:06:27 · 479 阅读 · 0 评论 -
redis的数据类型到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
想象一下,你有一个超级大的玩具箱,里面可以放各种各样的玩具。不同类型的玩具要放在不同的小格子里,这样找起来就很方便。Redis的数据类型就像是这些小格子,它能让我们把不同种类的数据用合适的方式存起来,用的时候也能很快找到。原创 2025-04-21 00:06:17 · 427 阅读 · 0 评论 -
redis的键为什么要这样写goods:3:stock?到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?
就像这个标签,用冒号把不同的信息分开,这样我们一看就知道这个键和商品有关,“3”可能代表第3个商品,“stock”表示这个键存的是商品的库存信息。想象一下,你有一个超级大的玩具仓库,里面有好多不同种类的玩具。为了能快速找到你想要的玩具,你会给每个放玩具的架子贴上标签,标签上写清楚这是哪种玩具,是第几个,还有具体的信息。这个键主要是用来存第3个商品的库存数量的。就像你在玩具仓库里用一个小盒子专门放某个玩具的数量,这个键在Redis里就是用来放商品库存这个数据的。原创 2025-04-21 00:06:00 · 486 阅读 · 0 评论 -
redis的秒杀系统的库存预热到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
想象一下,你要举办一场超级好玩的玩具大抢购活动,每个小朋友都可以来抢玩具。在活动开始之前,你得先把玩具都摆到货架上,让大家能随时看到和拿到。Redis秒杀系统的库存预热就像是这个摆玩具的过程,在秒杀活动开始之前,把商品的库存数量提前存到Redis里,这样在秒杀开始的时候,程序就能快速地从Redis里拿到库存信息,而不用再去慢慢的数据库里找,这样就能让秒杀活动进行得又快又顺利啦。原创 2025-04-21 00:05:23 · 440 阅读 · 0 评论 -
redis的秒杀系统的批量库存预热到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?
想象一下,你要举办一场超大型的玩具大派对,有好多不同种类的玩具要拿出来给小朋友们抢。要是一个一个地把玩具摆到货架上,那可太费时间啦。批量库存预热就像是一次性把所有的玩具都整齐地摆到货架上。在Redis秒杀系统里,当有很多种商品要参与秒杀活动时,批量库存预热就是把这些商品的库存数量一次性从数据库取出来,然后一次性存到Redis里,这样能让系统更快地为秒杀活动做好准备,节省时间和资源。原创 2025-04-21 00:05:10 · 323 阅读 · 0 评论 -
$redis->zRevRange到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
就像是让你从这个排好队的弹珠堆里,挑出你想要的那些弹珠。在Redis里,它能从有序集合里,按照分数从高到低的顺序,取出你指定范围的元素。想象一下,你有一堆彩色的弹珠,每个弹珠都有一个分数,你把这些弹珠按照分数从高到低排好队。原创 2025-04-21 00:04:58 · 357 阅读 · 0 评论 -
$redis->sadd到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
就像是往这个魔法口袋里放东西的动作。在Redis里,它是用来往集合(set)数据类型中添加元素的,而且集合里不会有重复的元素。想象一下你有一个魔法口袋,这个口袋有个神奇的规则:同样的东西只能放进去一次。原创 2025-04-21 00:04:44 · 396 阅读 · 0 评论 -
$redis->multi()到底是干什么的?一共包含哪些部分?背后到底做了哪些事情?使用场景是什么?底层原理是什么?
想象一下,你要去超市买好多东西,你可以一件一件地去收银台结账,这样要排好多次队,很浪费时间。但是你也可以把所有东西都放在购物车里,最后一起去结账,这样就方便多啦。就像是把购物车准备好,它能让你把多个Redis命令放在一起,一次性发给Redis服务器去执行,而不是一个一个地发,这样能节省时间,提高效率。原创 2025-04-21 00:04:28 · 365 阅读 · 0 评论 -
Redis常用数据结构优缺点到底是什么?使用场景是什么?底层原理是什么?
Redis 是一个高性能的键值存储系统,支持多种数据结构。原创 2025-03-03 00:28:17 · 1389 阅读 · 0 评论 -
redis一共有哪些数据类型?使用场景是什么?底层原理是什么?
通过这些数据类型和底层原理,Redis 能够满足各种场景下的高性能需求。Redis 是一个高性能的键值存储系统,支持多种数据类型。原创 2025-02-23 00:05:29 · 728 阅读 · 0 评论 -
redis一共有多少种数据类型?使用场景是什么?底层原理是什么?
在内部使用字典(hash table)来实现,当元素数量较少时,采用压缩列表(ziplist),随着元素增多转为哈希表(hashtable)。: 结合了哈希表和跳跃表(skiplist)的优点,哈希表用来保证值的唯一性,跳跃表用来提供有序访问的能力。Redis 的设计允许它在不同的数据结构上执行非常高效的读写操作,同时保持良好的内存使用效率。: 内部以简单动态字符串(SDS)的形式存储,能够高效地处理字符串长度变化的问题。: 不重复的字符串集合,支持集合间的交集、并集、差集操作。原创 2025-02-03 16:03:23 · 418 阅读 · 0 评论
分享