客户端服务端缓存一致性设计
1、借助TCP/QUICK可靠传输同时,加上客户端坏数据与服务端消息同步,进行剔除;服务端要进行异常处理,通知客户端缓存id回退。
2、LRU缓存策略。服务端借助HASH数组存储图片数据的MD5值和CacheID,双向链表进行缓存淘汰,可借助linux内核list.h实现。若借助STL中list和unordered_map要注意,侵入式容器和非侵入容器的区别:侵入式容器。
客户端存储数据和cacheID值。如此双缓存策略,策略的选择要根据数据的类型,没有最好只有最适合,可测试选择 LFU和LRU。
3、图像要进行分块甚至分行,选择最佳的缓存命中策略。计算md5值得耗时要和分块数目相匹配,x86服务器服务端最好采取带有x86指令加速的md5计算方法,处理hash冲突。