NewLife.Redis
是一個Redis客戶端組件,以高性能處理大數據實時計算為目標。
Redis協議基礎實現Redis/RedisClient位於X組件,本庫為擴展實現,主要增加列表結構、哈希結構、隊列等高級功能。
源碼: https://github.com/NewLifeX/NewLife.Redis
Nuget:NewLife.Redis
特性
- 在ZTO大數據實時計算廣泛應用,200多個Redis實例穩定工作一年多,每天處理近1億包裹數據,日均調用量80億次
- 低延遲,Get/Set操作平均耗時200~600us(含往返網絡通信)
- 大吞吐,自帶連接池,最大支持1000並發
- 高性能,支持二進制序列化
Redis經驗分享
- 在Linux上多實例部署,實例個數等於處理器個數,各實例最大內存直接為本機物理內存,避免單個實例內存撐爆
- 把海量數據(10億+)根據key哈希(Crc16/Crc32)存放在多個實例上,讀寫性能成倍增長
- 采用二進制序列化,而非常見Json序列化
- 合理設計每一對Key的Value大小,包括但不限於使用批量獲取,原則是讓每次網絡包控制在1.4k字節附近,減少通信次數
- Redis客戶端的Get/Set操作平均耗時200~600us(含往返網絡通信),以此為參考評估網絡環境和Redis客戶端組件
- 使用管道Pipeline合並一批命令
- Redis的主要性能瓶頸是序列化、網絡帶寬和內存大小,濫用時處理器也會達到瓶頸
- 其它可查優化技巧 以上經驗,源自於300多個實例4T以上空間一年多穩定工作的經驗,並按照重要程度排了先后順序,可根據場景需要酌情采用!