原创 一張券先按照金額排序,金額相同的再按照時間排序

<?php class Discount { public $money; public $time; function __construct($money, $time) { $t

原创 算法收集整理

原创 Redis之Cluster(集羣)

上文書說到了sentinel,本次來介紹下cluster,這是個分佈式的方案,通過分片(sharding)來共享數據,並且支持故障轉移,放在當前是流弊的。 節點:        通常是指一臺服務器,也有可能一臺機器上部署多個redis,就

原创 Redis之sentinel

sentinel是redis 高可用的一種架構,主要是由多個sentinel組成監視系統,可以監視多個主從服務器,在他們下線的時候 進行自動切換升級。 sentinel啓動的時候和啓動主從並無特別大的區別 sentinel 每隔10秒向

原创 go爲什麼快

參考文獻:https://studygolang.com/articles/26879?fr=sidebar go快的主要原因: 1、上下文切換代價小: Goroutine 上下文切換隻涉及到三個寄存器(PC / SP / DX)的值修改

原创 getimagesize引發線上問題之我所思

寫篇博文平復下我的心情。 在我的經驗裏,總認爲php代碼寫的再爛也不會爛到那,今天社區的上線顛覆了我的想法。事情是這樣的。社區二期上線後,服務器負載突然增高,接口頻繁報錯,在上線之前,對代碼塊的語義做了再三的核對。並沒發現異常。打開日誌查

原创 Redis之rdb持久化

redis的數據都放在內存當中,如果服務器退出。數據就不見了,爲了解決這種問題提供了rdb和aof  rdb是一個被壓縮過都二進制文件,在服務器啓動都時候,通過redis.conf裏都配置自動加載啓動。 生成rdb文件的命令有save和b

原创 Redis之數據庫

redis的數據庫的num是通過配置來設置的。其實是在內存中開闢來num個長度的內存地址,所謂的切換,select 0 到select 1,其實就是把地址指針從0指到了1. 我們在存如set key value 的時候,會把key 存到一

原创 Redis之SDS

SDS: 主要由free、len、buf三個組成,分別記錄剩餘的長度、當前字符串的長度和字符串。它是通過預分配和惰性空間釋放來減少內存分配操作, 預分配策略:每次存字符串的時候如果小於1m則分配與字符串相同的大小,額外加一個1位的\0結尾

原创 win10中git密碼認證失敗

今天在使用git clone克隆項目的時候報如下錯誤: $ git clone XXXXXX Cloning into 'XXXX'... fatal: Authentication failed for 'XXXXXX' 在網上查找了

原创 crontab任務加鎖的奇淫技巧-flock

項目中難免會有任務要定時執行,我們的解決辦法,搭建一套調度系統或在系統(linux)上執行crontab,我們來講下crontab下執行時間較長的任務,如何避免多次執行引發的衝突。 問題:假設我們要執行300次循環,每次休眠1秒,而我們的

原创 從無到有,我司CRM的演變史

來到現在這公司已經近5年,能拿得出手項目僅有CRM和消息網關。本篇文章主要講CRM的演變史。 一、孽緣。         15年12月21日來到公司,團隊新組建,算我僅4人,最長到僅半年而已,當時公司購買了sugarcrm系統,創建模塊確

原创 我理解的設計模式-簡單工廠、工廠模式

很長時間對簡單工廠、工廠模式傻傻分不清楚,故寫此文章希望能加深理解,其中涉及的代碼和圖均來自:https://www.cnblogs.com/yssjun/p/11102162.html 先思考幾個問題 1、簡單工廠和工廠區別是什麼? 2

原创 RocketMQ掃盲(二)broker存儲

1、介紹broker broker應該算是RocketMQ中比較重要的一個環節,負責消息的接收、存儲、發送,搭建方式支持主從。實現高性能、高吞吐量。簡言之,生產者發送的消息全部到了這裏 2、broker與nameserver通信 3、b