一、memcache是什么?
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。
MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。
二、memcache是从哪几个方面提升性能的?
2.1 网络处理reactor模式
reactor:https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/73284062
2.2 线程池及锁
这里可以针对不同的key分别设置消息队列, 减少操作同一个key冲突被锁并发性能下降。
2.3 查找策略
路由 一致性hash
存储结构 hashmap, 冲突解决, 扩容
2.4 内存策略
避免内存碎片, 程序每次开辟大的内存, 并且自己管理内存
释放开辟内存比较快, 把内存块分成均等分, 拼装释放内存比较快。
三、 支持多种语言怎么解决的?
Restful协议?
四、 怎么使用memcache?
3.1 原子性 任何操作都是原子性的。
3.2 乐观锁 gets cas
如若错误, 敬请指出。 欢迎探讨。