<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[stand_forever的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/stand_forever</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; stand_forever]]></copyright><item><title><![CDATA[redis秒杀实现]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/156192096</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/156192096</guid><author>stand_forever</author><pubDate>Tue, 23 Dec 2025 11:45:47 +0800</pubDate><description><![CDATA[本文介绍了秒杀系统的核心实现方案，主要包含三个关键环节：1）秒杀前通过Redis缓存预热库存；2）秒杀过程中采用Redis原子操作防超卖、用户限流防刷单、订单标记防重复购买；3）异步队列处理订单创建。系统通过多级防护机制（Redis库存校验+数据库事务+限流策略）确保高并发下的数据一致性，并采用消息队列异步化处理提升响应速度。文章还提供了Laravel环境下的具体代码实现，包括库存预热、秒杀逻辑、订单任务等核心模块，以及缓存击穿防护、性能优化等注意事项。]]></description><category></category></item><item><title><![CDATA[PHP客户端调用由Go服务端GRPC接口]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/154787250</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/154787250</guid><author>stand_forever</author><pubDate>Thu, 13 Nov 2025 15:17:27 +0800</pubDate><description><![CDATA[本文详细介绍了在Windows环境下安装配置PHP的gRPC和Protobuf扩展的步骤，包括下载dll文件、修改php.ini配置和使用Composer安装相关包。同时讲解了如何通过grpc_php_plugin插件生成proto文件对应的PHP文件，包括使用Swoole/grpc中的generator脚本自动批量生成PHP文件。最后演示了在Laravel框架中调用Go服务端gRPC接口的实例代码，包括构建请求、设置元数据、处理响应等关键步骤。整个流程涵盖了从环境搭建到实际调用的完整开发链路。]]></description><category></category></item><item><title><![CDATA[mysql索引相关]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149937003</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149937003</guid><author>stand_forever</author><pubDate>Tue, 05 Aug 2025 14:55:02 +0800</pubDate><description><![CDATA[索引方法：BTREE 和hash根据存储方式分为：聚簇索引和非聚簇索引根据聚簇索引和非聚簇索引还能继续下分还能分为普通索引、覆盖索引、唯一索引以及联合索引等。聚簇索引和非聚簇索引是数据库索引的两种存储方式。在MySQL中，InnoDB存储引擎使用的是聚簇索引，而MyISAM存储引擎使用的是非聚簇索引。数据和索引在同一个B-Tree结构中存储。一个表只能有一个聚簇索引，通常是主键。聚簇索引的叶子节点包含行的全部数据。]]></description><category></category></item><item><title><![CDATA[laravel框架优化]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149632968</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149632968</guid><author>stand_forever</author><pubDate>Fri, 25 Jul 2025 15:08:16 +0800</pubDate><description><![CDATA[本文介绍了优化Laravel项目性能的多种方法：1)通过Composer优化自动加载，剔除开发依赖；2)利用缓存机制加速响应，包括配置、路由和数据缓存；3)数据库优化技巧，如避免N+1查询、指定字段、分块处理；4)为常用查询字段添加索引；5)将耗时任务放入队列异步处理；6)优化会话和Cookie存储；7)使用监控工具分析性能；8)部署时启用OPcache和预编译；9)其他技巧如禁用调试模式、使用CDN等。这些优化能显著提升Laravel应用的运行效率。]]></description><category></category></item><item><title><![CDATA[redis常用数据类型]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149573235</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149573235</guid><author>stand_forever</author><pubDate>Thu, 24 Jul 2025 16:24:35 +0800</pubDate><description><![CDATA[Redis 列表是简单的字符串列表，按照插入顺序排序。你可以添加一个元素到列表的头部（左边）或者尾部（右边）。它的底层实际是个双向链表，对两端的操作性能很高，通过索引下标操作中间的节点性能会较差。]]></description><category></category></item><item><title><![CDATA[redis缓存常见问题之--缓存雪崩 缓存穿透 缓存击穿]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149570506</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149570506</guid><author>stand_forever</author><pubDate>Wed, 23 Jul 2025 14:25:10 +0800</pubDate><description><![CDATA[指的是启动redis  先把查询到的数据 存在缓存中 然后每次直接从缓存中获取所需的数据 节约用户的等待时间。：就是说短时间内 大量的缓存全部过期，客户端请求直接绕过缓存 直接请求数据库 导致数据库负载较大。：指的是一个热点缓存 再某一时刻突然失效，客户端访问的时候找不到数据 直接访问数据库。：查询一个不存在的数据 由于没查到数据 所以不写入缓存 直接从数据库查询。解决方法：布隆过滤器，空结果的缓存时间 设置的短一点。解决方法：加锁排队，设置随机的缓存过期时间。]]></description><category></category></item><item><title><![CDATA[redis秒杀之lua脚本]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149540012</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149540012</guid><author>stand_forever</author><pubDate>Tue, 22 Jul 2025 16:48:55 +0800</pubDate><description><![CDATA[摘要：Redis通过Lua脚本实现秒杀功能，利用其单线程模型保证原子性操作。脚本包含库存检查、扣减和订单记录等步骤，避免并发冲突且无需额外加锁。实现流程包括库存预热和脚本执行，PHP示例展示了如何定义Redis键、编写Lua脚本（检查库存、用户重复购买）及处理结果。成功秒杀后异步创建订单，初始化时需预先设置库存数量。该方法有效解决了高并发场景下的库存超卖问题。]]></description><category></category></item><item><title><![CDATA[RabbitMQ的几个模式]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/149327197</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/149327197</guid><author>stand_forever</author><pubDate>Mon, 14 Jul 2025 11:58:27 +0800</pubDate><description><![CDATA[C1 C2共同争抢当前的消息队列内容,谁先拿到谁负责消费消息(隐患,高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用)消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)]]></description><category></category></item><item><title><![CDATA[AWS 使用 Amazon EC2 控制台安装和配置 CloudWatch 代理以添加其他指标如内存]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/141559469</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/141559469</guid><author>stand_forever</author><pubDate>Mon, 26 Aug 2024 11:34:55 +0800</pubDate><description><![CDATA[默认情况下，Amazon CloudWatch 提供基本指标（例如和NetworkIn）用于监控 Amazon EC2 实例。要收集其他指标，您可以在 EC2 实例上安装 CloudWatch 代理，然后将该代理配置为发出所选指标。您可以使用 Amazon EC2 控制台执行此操作，而不必在每个 EC2 实例上手动安装和配置 CloudWatch 代理。]]></description><category></category></item><item><title><![CDATA[安装Supervisor队列进程、管理 Laravel 队列进程]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/140959965</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/140959965</guid><author>stand_forever</author><pubDate>Tue, 06 Aug 2024 16:51:31 +0800</pubDate><description><![CDATA[安装Supervisor队列进程、管理 Laravel 队列进程]]></description><category></category></item><item><title><![CDATA[go语言基础笔记]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/136630699</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/136630699</guid><author>stand_forever</author><pubDate>Mon, 11 Mar 2024 22:15:00 +0800</pubDate><description><![CDATA[go语言基础笔记]]></description><category></category></item><item><title><![CDATA[gorm常用]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/136630579</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/136630579</guid><author>stand_forever</author><pubDate>Mon, 11 Mar 2024 17:41:14 +0800</pubDate><description><![CDATA[gorm常用操作]]></description><category></category></item><item><title><![CDATA[DevTools failed to load source map: Could not load content for ...HTTP error: status code 404]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/132712478</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/132712478</guid><author>stand_forever</author><pubDate>Wed, 06 Sep 2023 12:02:43 +0800</pubDate><description><![CDATA[原因是：dev工具未能成功加载出映射源，无法加载内容 .谷歌插件映射未能成功加载。解决办法: F12 打开控制台。然后把这2个取消勾选。之后不会再出现警告了。]]></description><category></category></item><item><title><![CDATA[SemrushBot蜘蛛爬虫屏蔽方式]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/132490139</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/132490139</guid><author>stand_forever</author><pubDate>Fri, 25 Aug 2023 10:32:05 +0800</pubDate><description><![CDATA[查看访问日志时候发现有SemrushBot爬虫屏蔽方法：对于遵循robots协议的蜘蛛，可以直接在robots禁止。上面常见的无用蜘蛛禁止方法如下，将下面的内容加入到网站根目录下面的robots.txt就可以了。]]></description><category></category></item><item><title><![CDATA[FastCGI sent in stderr: ＂PHP message: PHP Fatal error]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/129184496</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/129184496</guid><author>stand_forever</author><pubDate>Thu, 23 Feb 2023 16:52:56 +0800</pubDate><description><![CDATA[服务器php7.2卸载安装7.4之后,打开网站一直无法访问]]></description><category></category></item><item><title><![CDATA[Mysql查询数据表中某字段重复出现的次数，并按照次数排序]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/124346751</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/124346751</guid><author>stand_forever</author><pubDate>Fri, 22 Apr 2022 15:23:54 +0800</pubDate><description><![CDATA[利用Mysql中的 的聚合函数 count(*) 可以实现这个功能

例如需要查询user表中village_id出现次数最多的记录，可以先按照group by village_id分组，用count算出分组里的条数，再按照count排序：


$o = User::where('add_type', 2)
            -&gt;where('village_id', $name)
            -&gt;select([
                \DB::raw('count]]></description><category></category></item><item><title><![CDATA[阿里云服务器云盘扩容]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/121556003</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/121556003</guid><author>stand_forever</author><pubDate>Fri, 26 Nov 2021 11:31:40 +0800</pubDate><description><![CDATA[注意:在控制台磁盘扩容交费之后,要先查看云盘大小：


fdisk -l



如果这里的大小还是扩容之前的,要在控制台重启一下服务器,之后再查看,变成扩容之后的大小了再

按照对应的文档操作即可:

扩展分区和文件系统_Linux系统盘 - 云服务器 ECS - 阿里云
...]]></description><category></category></item><item><title><![CDATA[App 通过包名获取秘钥]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/117554694</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/117554694</guid><author>stand_forever</author><pubDate>Fri, 04 Jun 2021 11:59:50 +0800</pubDate><description><![CDATA[1.获取证书(这里我采用的是.keystore)

Android平台签名证书(.keystore)生成指南

分类：HTML5+

Android证书

Android平台打包发布apk应用，需要使用数字证书（.keystore文件）进行签名，用于表明开发者身份。

Android证书的生成是自助和免费的，不需要审批或付费。

可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法：

安装JRE环境（推荐使用JRE8环境，如已有可跳过）

可从Oracle官方下载jre安装]]></description><category></category></item><item><title><![CDATA[Ubuntu CURL下载报错：curl: (77) error setting certificate verify locations:]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/117086018</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/117086018</guid><author>stand_forever</author><pubDate>Thu, 20 May 2021 17:54:30 +0800</pubDate><description><![CDATA[错误信息:

cURL error 77: error setting certificate verify locations:

curl: (77) error setting certificate verify locations:CAfile: /etc/pki/tls/certs/ca-bundle.crtCApath: none

need to create folders for the target destination if they do not exist by running]]></description><category></category></item><item><title><![CDATA[linux 上执行composer install 出现这个 undefined index:name 问题]]></title><link>https://blog.youkuaiyun.com/stand_forever/article/details/117085795</link><guid>https://blog.youkuaiyun.com/stand_forever/article/details/117085795</guid><author>stand_forever</author><pubDate>Thu, 20 May 2021 17:45:52 +0800</pubDate><description><![CDATA[linux 上执行composer install 出现这个 undefined index:name 报错:



解决方案就是compoesr 版本降级

# composer 降级

composer self-update --1

# 再次安装，即可！！！

composer install

# 再次安装，即可！！！

composer install
...]]></description><category></category></item></channel></rss>