memcached
memcached是一个高性能的分布式的内存对象缓存系统,通过键值得方式存储数据。它将关键数据存储在内存中,大大减少存取数据的时间,减少了系统访问数据库的压力。
memcached存储实际上就是在内存中维护一张巨大的hash表,里面可以存放多种数据,如字符串,对象,数组。
一:memcached使用场所
了解到memcached的概念之后,可能会感觉,既然memcached把可以减少访问数据时间,减少数据库压力,那要是想提高效率时就可以用了。而实际上,memcached不是在什么场合都能用的。
memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源。
memcached在很多时候都是作为数据库前端cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力,使系统执行效率提升。另外,memcached也经常作为服务器之间数据共享的存储媒介.
但是,使用memcached时还需要注意的是,memcached使用内存管理数据,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失。另外,内存容量达到指定值之后,就会自动删除不使用的缓存。所以memcached不能用来持久保存数据。
二:memcached使用
使用memcached一般用telent或者一些一些其他语言,例如PHP,C等。memcached默认的端口是。
1:使用telnet操作memcached
(1):telnet添加数据到memcached:
addkey值0时间(秒)长度(存放多长时间由你指定,键名不能重复,但是值可以重复)例:addname不可以在addname
(2):获取数据
getkey值
(3):修改数据
replacekey值
setkey值(如果key值不存在,相当于添加,如果存在,则相当于修改.)
(4):删除数据
delete键值
2:PHP中使用memcached
1:Memcache方法
PHP中Memcache方法有很多,如下:
Memcache::add—增加一个条目到缓存服务器
Memcache::addServer—向连接池中添加一个memcache服务器
Memcache::close—关闭memcache连接
Memcache::connect—打开一个memcached服务端连接
Memcache::decrement—减小元素的值
Memcache::delete—从服务端删除一个元素
Memcache::flush—清洗(删除)已经存储的所有的元素
Memcache::get—从服务端检回一个元素
Memcache::getExtendedStats—缓存服务器池中所有服务器统计信息
Memcache::getServerStatus—用于获取一个服务器的在线/离线状态
Memcache::getStats—获取服务器统计信息
Memcache::getVersion—返回服务器版本信息
Memcache::increment—增加一个元素的值
Memcache::pconnect—打开一个到服务器的持久化连接
Memcache::replace—替换已经存在的元素的值
Memcache::set—Storedataattheserver
Memcache::setCompressThreshold—开启大值自动压缩
Memcache::setServerParams—运行时修改服务器参数和状态
例如:
运行结果:
当然在上面的例子中也可以把key1和key2存在不同的端口中,这样就需要加下面的代码: