裝飾者模式 裝飾者模式 裝飾者模式類似蛋糕,有草莓味、奶酪等種類,但是它們的核心都是蛋糕。 不斷地將對象添加裝飾的設(shè)計模式叫做 裝飾者模式(Decorator) PHP代碼實...
裝飾者模式 裝飾者模式 裝飾者模式類似蛋糕,有草莓味、奶酪等種類,但是它們的核心都是蛋糕。 不斷地將對象添加裝飾的設(shè)計模式叫做 裝飾者模式(Decorator) PHP代碼實...
composer執(zhí)行源碼分析 composer的安裝 生成composer之后會用如下目錄結(jié)構(gòu)1567064549109.jpg 2.在項目的入口文件加載composer 3...
運行代碼(留意$arr) 返回結(jié)果(PHP7.1之前版本代碼) 返回結(jié)果(PHP7.1+版本) 結(jié)果對比 對比兩個不同版本返回的結(jié)果。變量arr當(dāng)成數(shù)組使用。在7.1版本之前...
在使用redis設(shè)計簽到系統(tǒng),我們可以使用集合和bitmaps兩種數(shù)據(jù)結(jié)構(gòu)。這邊我們來說明一下bitmaps。 1.bitmaps的數(shù)據(jù)結(jié)構(gòu)模型 Bitmaps本身不是一種數(shù)...
HyperLogLog并不是一種新的數(shù)據(jù)結(jié)構(gòu)(實際類型為字符串類型),而是一種基數(shù)算法,通過HyperLogLog可以利用極小的內(nèi)存空間完成獨立總數(shù)的統(tǒng)計。 一、場景概述 H...
redis執(zhí)行一條命令有四個過程:發(fā)送命令、命令排隊、命令執(zhí)行、返回結(jié)果;整個過程是一個往返時間(RTT)。如果有n條命令,就會消耗n次RTT。Redis的客戶端和服務(wù)端可能...
在MySql提供慢查詢?nèi)罩緛矶ㄎ幌到y(tǒng)存在的慢操作。慢查詢?nèi)罩揪褪窍到y(tǒng)在命令執(zhí)行前后計算每條命令的執(zhí)行時間,當(dāng)超過預(yù)定的最大值,就將這條命令的相關(guān)信息記錄。 慢查詢的參數(shù)配置 ...
keys 在測試環(huán)境使用redis的時候,經(jīng)常會要批量刪除key,我們但是redis并沒有提供批量刪除的命令,但是我們可以在命令行下,使用keys遍歷鍵實現(xiàn) 漸進式遍歷 sc...
如何設(shè)置鍵過期 Redis所有的鍵都可以設(shè)置過期屬性,內(nèi)部保存在過期字典中。 expire key seconds --鍵在seconds秒后過期 expireat key...
內(nèi)部編碼 ziplist(壓縮列表): 當(dāng)有序集合的元素個數(shù)小于zset-max-ziplistentries配置(默認128個),同時每個元素的值都小于zset-max-z...
文檔地址 內(nèi)部編碼 intset(整數(shù)集合): 當(dāng)集合中的元素都是整數(shù)且元素個數(shù)小于set-maxintset-entries配置(默認512個)時,Redis會選用ints...
文檔地址 列表類型有兩個特點: 第一、列表中的元素是有序的,這就意味著可以通過索引下標獲取某個元素或者某個范圍內(nèi)的元素列表。 第二、列表中的元素可以是重復(fù)的, 內(nèi)部編碼 列表...
文檔地址 內(nèi)部編碼 ziplist(壓縮列表) hashtable(哈希表) 編碼的選擇 內(nèi)部編碼默認是ziplist(當(dāng)子建個數(shù)比較少且沒有大的value時) 當(dāng)有valu...
值最大不能超過512MB 設(shè)置值 setex和setnx set key value [ex 秒] [px 毫秒] [nx|xx] nx:鍵必須不存在,才可以設(shè)置成功,用于添...
單線程架構(gòu) 純內(nèi)存 非阻塞i/o 單線程避免了線程切換和竟態(tài)產(chǎn)生的消耗 概要: 使用多路復(fù)用技術(shù) 全局命令 查看所有鍵 key * 算法法度o(n) 鍵總數(shù) dbsize 算...
特性 速度快 速度快的原因歸納如下:Redis的所有數(shù)據(jù)都是存在內(nèi)存中使用C語言實現(xiàn)使用了單線程架構(gòu),預(yù)防了多線程可能產(chǎn)生的死鎖 基于鍵值對的數(shù)據(jù)結(jié)構(gòu)服務(wù)器 豐富的功能 鍵過...