资源介绍
KV快取
内存KV存储中的线程安全异步
注意事项
首先,我可能会建议使用现有的解决方案。 诸如memcached , redis , FASTER , Masstree类的东西投入了大量的工程时间。如果由于某种原因这些解决方案不起作用,并且需要重量更轻的解决方案,那么这可以起作用。
有关此实现的更详细说明,请参见“ Design部分,但它的核心是在Hashmap上使用Read Write锁来提供线程安全性。 还有一些其他的优化措施,它们不需要完全的写锁来进行更新,但是最后仍然需要对插入和删除进行锁。
如果这是性能瓶颈,并且您仍然不想使用预先存在的解决方案,则可以执行以下一些优化:
实现无锁哈希表。 这可以用原子来完成,但是要正确就可能很棘手,并增加了解决方案的复杂性。 同样,使用原子还有额外的开销,但是如果您需要这种优化,那么性能收益肯定会超过开销。 另外,锈可以使用几个无锁地图。