摘要:之前記錄在公司內部的上的現在把這些經驗分享出來當然這些優化都已經在框架的底層做掉了使用框架時并不需要特別在意和的性能差別在注冊用戶的時候之前我們大量使用可以保證用戶數據的唯一性防止多次寫入但經過測試這種方式相比性能差別巨大所以采取了下面的方
之前記錄在公司內部的wiki上的,現在把這些經驗分享出來,當然這些優化,都已經在框架的底層做掉了,使用框架時,并不需要特別在意
hset/hsetnx和hmset的性能差別
在注冊用戶的時候,之前我們大量使用hsetnx,可以保證用戶數據的唯一性,防止多次寫入
但經過測試,這種方式,相比hmset性能差別巨大,所以采取了下面的方式
存儲數據,某些情況采用ziplist節省空間
在做游戲時,我們大量使用redis的hash結構,但這種結構,雖然叫做hash,但當hash-max-ziplist-entries 512實用這個配置,數據key < 512條時,實際用的是ziplist,一種用binary做鏈表連接標識的壓縮鏈表,為了節省存儲空間,畢竟hash結構要記錄的信息太多,空間換時間
在優化之前,我們的一個普通的角色信息,是類似這樣存儲的
Key role:96
Field 96
Value [96,96,0,10,1,100]
一個role:96里只有一個field(96),這樣實際上非常浪費空間,用一個完整的ziplist結構描述,但只存儲一個key
所以進行了優化,例如role:0這個key,存儲了512個field,進行了這樣的拆分后,即不會觸發閥值,將存儲結構變為真正的hash table,也充分利用了ziplist的結構描述,大大節省了空間
一個簡單的配置:
$config["redis_cut_single_table"] = 512;
hIncrBy使用方法優化
在我們一次請求,比如用戶道具的插入,這種時候,一次會需要生成很多的新id,這種情況,這個優化就非常關鍵了
減少hIncrBy方法的調用次數,采用php內部預生成分配的辦法,批量插入的時候將大量提升
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20933.html
摘要:優化的一些建議盡量使用短的當然在精簡的同時,不要完了的見名知意。的開發者向的開發者之一詢問優化方案,得到的回復是使用結構。所以內存分配策略應該設置為表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。 優化的一些建議 1、盡量使用短的key 當然在精簡的同時,不要完了key的見名知意。對于value有些也可精簡,比如性別使用0、1。 2、避免使用keys * keys *, 這個...
閱讀 3201·2021-11-10 11:35
閱讀 1306·2019-08-30 13:20
閱讀 1127·2019-08-29 16:18
閱讀 2142·2019-08-26 13:54
閱讀 2168·2019-08-26 13:50
閱讀 968·2019-08-26 13:39
閱讀 2484·2019-08-26 12:08
閱讀 1959·2019-08-26 10:37