redis

memcache

2020-03-03  本文已影响0人  小蜗牛Aaron

memcached简介

免费和开源,高性能,分布式内存对象缓存系统。通过减轻数据库负载来加速动态Web应用程序,Memcached简单而强大。

安装与测试

yum install libevent-devel 
wget https://memcached.org/latest mv latest memcached-1.5.12.tar.gz tar -zxf memcached-1.5.12.tar.gz 
cd memcached-1.5.12 ./configure --prefix=/usr/local/memcached 
make && sudo make install
# 启动并使用Memcached 
cd =/usr/local/memcached/ ./bin/memcached -m 64 -p 11211 -u root -vvv 
# 使用memcached 
# telnet memcached_server_ip port例如: 
telnet localhost 11211
常用启动参数

常用命令

常用命令

客户端使用(xmemcached)

MemcachedClient client=new XMemcachedClient("host",11211);
//同步存储value到memcached,缓存超时为1小时,3600秒。 
client.set("key",3600,someObject); 
//从memcached获取key对应的value 
Object someObject=client.get("key");
//从memcached获取key对应的value,操作超时2秒 
someObject=client.get("key",2000); 
//更新缓存的超时时间为10秒。 
boolean success=client.touch("key",10);
//删除value 
client.delete("key");

客户端支持的特性:集群下多服务器选择、节点权重配置、失败/故障转移、数据压缩、连接管理

服务端配置

memcached设计理念

memcached性能

Memcached性能的关键是硬件,内部实现是hash表,读写操作都是O(1)。硬件好,几百万的QPS都是没问题的

最大连接数限制

内部基于事件机制(类似JAVA NIO)所以这个限制和nio类似,只要内存、操作系统参数进行调整,轻松几十万。

集群节点数量限制

理论是没限制的,但是节点越多,客户端需要建立的连接就会越多。
如果要存储的数据很多,优先考虑可以增加内存,成本太高的情况下,再增加节点。

memcached服务端没有分布式的功能,所以不论是集群还是主从备份,都需要第三方产品支持。

服务器硬件需要

memcached使用场景

redis vs memcached
redis vs memcached
  1. 数据查询缓存:将数据库中的数据加载到memcahced,提供程序的访问速度。
  2. 计数器的场景:通过incr/decr命令实现评论数量、点击数统计、操作次数等等场景。
  3. 乐观锁实现:例如计划任务多实例部署的场景下,通过CAS实现不重复执行。
  4. 防止重复处理:CAS命令

memcached 集群

集群支持
集群方案 TwemProxy
twemProxy

memcached监控命令

memcached监控命令
上一篇 下一篇

猜你喜欢

热点阅读