自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 使用laravel框架操作kafka

您可以使用生产者发送消息到 Kafka 主题,并使用消费者从主题中消费消息并执行逻辑处理。创建一个 Kafka 服务提供者,以便将 Kafka 服务添加到 Laravel 的服务容器中。扩展来在 Laravel 中操作 Kafka。现在,您可以使用 Laravel 的依赖注入来访问 Kafka 生产者和消费者。对于消费者,您可以创建一个消费者定时任务服务来处理 Kafka 消息。安装完成后,您需要在 Laravel 配置文件中配置 Kafka 连接信息。在 Laravel 中操作 Kafka,可以使用。

2023-10-07 20:00:23 707

原创 docker常用命令大全

Docker 是一个强大的容器化平台,用于管理和部署应用程序。停止并删除 Compose 文件中定义的所有容器服务,并删除关联的卷。Ubuntu 容器并将宿主机8080端口映射到容器内的80端口。使用 Compose 文件中定义的服务启动容器,并在后台运行(列出当前 Compose 文件中定义的所有服务容器的状态。停止并删除 Compose 文件中定义的所有容器服务。根据 Compose 文件中的定义构建服务容器的镜像。:停止并删除容器服务以及关联的卷。:列出所有容器,包括停止的容器。

2023-10-07 19:16:00 135

原创 简单聊下laravel框架的事件和监听器,并展示其用法

事件是应用程序内发生的特定动作或发生的状态变化,而监听器则负责响应这些事件并执行相应的逻辑。比如,当用户注册成功时,可以触发一个名为"UserRegistered"的事件,而相应的监听器可以发送一封欢迎邮件或执行其他与注册相关的操作。这样一来,当一个事件触发时,可以有多个监听器来响应事件,而不需要修改事件本身或与事件相关联的代码。监听器可以配置为事件触发后执行异步操作,这样可以提高应用程序的性能和响应速度,因为应用程序不必等待异步操作完成,而可以立即响应请求。// 在监听器类中实现。文件中配置队列驱动。

2023-07-31 13:08:55 826

原创 php使用pcntl和supervisor两种守护进程实现队列实时消费

需要注意的是,守护进程通常是长期运行的,因此确保在实际应用中处理任务时要注意资源占用,避免内存泄漏和资源浪费。函数中,我们模拟了任务处理的耗时,并在实际应用中,你应该根据具体任务逻辑进行相应的处理。// 父进程可以继续执行其他任务或监控子进程。// 在子进程中执行的代码,业务逻辑放在子进程中处理。// 创建守护进程,并执行消费队列代码。// 从队列中取出任务,执行消费逻辑。// 父进程退出,子进程继续后台运行。// 设置子进程为新会话的首进程。// 在父进程中执行的代码。// 创建守护进程函数。

2023-07-27 11:16:31 302

原创 php结合redis lua脚本执行相关操作案例

在php中使用redis的lua脚本可以帮助你执行一系列原子性操作,并减少与redis的多次通信。在上面的代码中,首先定义了一个lua脚本,并将其加载到redis服务器中,得到一个SHA1哈希值用于后续的执行。这只是一个简单的示例,在实际应用中,你可以编写更复杂的脚本来执行更复杂的操作,利用redis的原子性来提高性能和并发性。方法执行了两次lua脚本:第一次是增加计数器的值,第二次是获取当前计数器的值。// 加载Lua脚本到Redis,并得到脚本的SHA1散列值。// 执行Lua脚本,增加计数器的值。

2023-07-24 17:10:01 274

原创 php结合swoole,基于websocket协议实现个简单的实时聊天功能案例

在上面的代码中,我们使用 Swoole 的 WebSocket 客户端来连接到服务器的 WebSocket 地址(本例中是 "ws://localhost:9501")。然后,客户端发送消息给服务器,服务器将消息广播到其他连接的客户端。在下面的示例中,我会演示一个简单的php聊天服务器,使用websocket协议来实现实时通信。输入消息并点击按钮,即可将消息发送到服务器,并将其广播给所有连接的客户端(除了发送者自己),从而实现一个简单的聊天室。// 将消息广播给所有连接的客户端(除了发送者自己)

2023-07-21 15:55:32 836

原创 php将本地服务器文件通过sftp传输到指定服务器上

成功完成后,将显示"File transfer completed."的消息。接下来,在laravel中创建一个自定义的命令或控制器来处理文件传输操作。中配置了远程服务器的SFTP连接参数,包括主机名、用户名、密码等。库,该库提供了对SFTP的支持。// 将文件从本地服务器上传到远程服务器。// 配置远程服务器的SFTP连接参数。来指定本地和远程服务器上的文件路径。库创建了一个SFTP适配器,并使用。// 配置本地服务器的文件路径。// 创建SFTP适配器。// 创建文件系统对象。你可以根据实际情况修改。

2023-07-17 14:40:37 516

原创 php常见算法一览(不定期更新中......)

来表示搜索范围的边界,并在每次迭代中将搜索范围缩小一半。如果找到目标值,则返回目标值的索引;如果目标值不存在,则返回-1。请注意,二分搜索算法要求在有序数组上进行操作,因此确保在使用二分搜索之前,数组已按升序或降序进行排序。函数来搜索目标值16。根据搜索结果,我们输出相应的消息。函数接受两个参数:一个有序数组。// 目标值在右侧,更新左边界。// 目标值在左侧,更新右边界。// 假设目标值是数组里的16。// 目标值不存在,返回-1。最后,我们定义了一个有序数组。// 找到目标值,返回索引。

2023-07-12 14:41:07 128

原创 使用php操作es数据库

以上只是一些基本操作示例,Elasticsearch-PHP提供了丰富的API和功能,可用于索引管理、搜索、聚合、过滤等高级操作。去查看Elasticsearch-PHP文档以了解更多。// Elasticsearch的主机和端口。

2023-07-12 11:34:45 614 1

原创 php结合redis实现分布式锁(乐观锁)

在每次重试中,使用·WATCH 命令监视锁键的状态,若key的值被修改过则事务不执行,然后检查当前锁的值是否存在或已过期。在实际生产环境中,为了确保分布式锁的正确性和可靠性,还需要考虑更多的因素,例如时钟的同步性、Redis节点之间的网络延迟等。定义了锁的键名$lockKey”,锁的值为当前时间加上锁的超时时间,用来标识锁的拥有者和锁的过期时间。如果无法获取到锁,可以执行其他处理逻辑,比如等待一段时间后再尝试获取锁,或者直接放弃操作。//如果当前锁不存在或已过期,则尝试获取锁。// 锁的超时时间(毫秒)

2023-07-10 19:03:32 345

原创 linux中关于记住git的用户名和密码

在Linux系统中,git会将记住的用户名和密码命令是git config --global credential.helper store,此命令执行后再输入用户名和密码会保存在用户的主目录下的一个隐藏文件中。对于大多数人经常会使用的命令git config --list来查看当前服务器登录的git用户名密码,其实没什么卵用~文件,查看其中的内容。请注意,存储密码的方式可以通过配置项。,但也可以使用其他的凭据帮助程序。,它位于用户主目录下(通常是。

2023-07-10 14:15:52 4319

原创 php结合redis实现分布式锁(悲观锁)

在 PHP 中,可以使用 Redis 实现加锁的机制来保护共享资源的互斥访问。// 成功获取锁,执行需要的代码。// 无论如何都要主动释放锁。// 未能获取锁,等待一段时间后重试。指定只有在锁不存在的情况下才会设置成功,并使用。// 连接到 Redis 服务器。// 锁的名称和超时时间。

2023-07-07 18:15:02 484

原创 php使用guzzle http发送并发接口请求

在 PHP 中, Guzzle 是一个功能强大且流行的 HTTP 客户端,提供了方便的接口来发送 HTTP 请求并处理响应,本人非常喜欢这个包且重度依赖。// $result即接口返回的body体,{code:0,message:ok,data:{}},可以使用json_decode转一下。// 发送并发请求,并等待所有请求完成(每个请求之间是异步的,因此效率非常高),返回一个响应数组。// 创建多个请求,请求地址可以相同,也可以不同。// 添加更多的请求...//或者遍历某个二维数组或结果集。

2023-07-07 17:44:06 2121 1

原创 php数组底层结构hash table的实现原理

哈希表的基本原理是将键(Key)通过哈希函数转换成一个唯一的索引值(Hash Code),然后将该索引值与存储位置进行映射,从而实现对值(Value)的快速访问。哈希冲突:由于哈希函数的有限性,不同的键可能生成相同的哈希码,这就产生了哈希冲突。动态扩容:PHP 哈希表具有动态扩容的能力,当哈希表中的键值对数量超过一定阈值时,会自动重新分配更大的内存空间,并将原有的键值对重新插入到新的哈希表中。然而,在极端情况下,如果存在大量的哈希冲突,操作的时间复杂度可能会退化为 O(n),其中 n 是键值对的数量。

2023-07-07 16:43:15 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除