原创 php批量更新

/*** * 批量更新 * @param string $table 表名 * @param array $values 更新字段(二維數組) * @param string $index

原创 RabbitMQ、消息隊列實現訂單超時設計思路、以及在訂單過期臨界點支付成功如何處理

場景:我們知道用 RabbitMQ 的延時隊列可以實現用戶下單後在 xxx 時間內未支付,需要自動關閉訂單。但如果用戶在訂單即將過期的最後一秒支付成功、那麼這筆訂單算不算正常下單?要不要釋放庫存? 一、下單未支付超時自動關閉訂單設計思路 1

原创 MYSQL原生命令監控數據庫情況

本次文章完全使用 mysql 自帶的 show 命令實現獲取,從 connects、buffercache、lock、SQL、statement、Database throughputs、serverconfig7 大方面全面獲取監控數據。

原创 組合優於繼承的理解

前言 首先,廣爲流傳的“組合優於繼承” 的說法是一種不嚴謹的翻譯,其來源如下:(衆多設計模式強調的兩個個最核心原則《Design Patterns: Elements of Reusable Object-Oriented Software

原创 golang(go)變量

package main import "fmt" func main() { // 變量定於的語法格式 // 常規寫法 var age int age = 30 println(age)

原创 TP6(thinkphp6)隊列與延時隊列

  安裝 在此我就不再略過TP6的項目創建過程了,大致就是安裝composer工具,安裝成功以後,再使用composer去創建項目即可。 think-queue 安裝 composer require topthink/think-que

原创 php中使用redis執行lua腳本

<?php$lua = <<<LUA local sequenceKey = KEYS[1] local time = KEYS[2] local sequenceNumber = redis.call("incr",

原创 分佈式事務 :可靠消息最終一致性方案

解決方案 本地消息表 本地消息表的關鍵在於本地有一張存儲消息日誌的記錄表,需要啓動一個定時任務去不停地掃描消息日誌記錄,確保消息能夠被髮送。具體流程如下圖:      上圖流程: 1)事務發起方本地事務執行成功,在本地消息表中記錄

原创 PHP解密小程序加密數據

<?php $encryptData = input('encryptedData','','trim'); //小程序加密數據 $iv = input('iv','','trim'); //小程序加密方法 $sessionKey =

原创 PHP+Redis實現排行榜

通過php和redis實現一個小功能排行榜,用的數據類型是有序集合:zrevrange 遞增排序,zrange 遞減排序 /** * 排行榜 */ public function rank() {

原创 php7Mongodb操作CURD和聚合分組求和

<?php //初始化 $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017"); // 插入數據 $bulk = new MongoDB\Driver\Bul

原创 阿里雲rds分區

SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_applyloan_baoxian'; SE

原创 go時間和日期轉換

package main import ( "fmt" "time" ) func main() { //獲取當前時間戳 timestamp := time.Now().Unix() fmt.P

原创 條件變量和互斥鎖結合channel使用

package main import ( "fmt" "math/rand" "sync" "time" ) var cond sync.Cond // 定義全局條件變量 func product(

原创 go切片去重

package main import "fmt" func main() { data := []string{"red", "black", "orange", "white", "red", "blue", "blue