摘要
Redis是一个基于内存存储的非结构化数据库,以高I/O(Input/Output)性能和高响应速度著称,在数据缓冲、消息队列、Key-Value存储等场景都发挥着重要的作用。在其支持的众多客户端中,C/C++客户端Hiredis的应用尤为广泛。对Hiredis库做了深入分析,发现了其管道功能存在高开销、指令存储不当以及内存混淆问题。基于此,在32逻辑核的X86架构处理器以及64 GB内存的Linux服务器上,设计并实现了一个面向C/C++的高性能高可用Redis客户端,通过内存预分配以及内存隔离的方法提高了大量指令批处理时的性能并解决了复杂场景下的内存混淆问题。经测试,新客户端提高了3~7倍的指令执行效率,同时也保证了复杂场景下的内存安全以及数据准确性。
-
单位国家超级计算无锡中心; 山东大学