[缓存]关于memcached的详细介绍以及用法

简介:
+关注继续查看

   很久没用过memcached,觉得有些生疏了,现在做一次笔记,回忆一下,也为了以后更加方便的理解.

   关于memcached的历史之类的,就不说了,不熟,也没怎么看过,主要就是说memcached的原理以及方式吧.笔记比较杂乱.

   memcached其实是类似于软件的一种,它是用来为其他软件或者服务提供一种高性能来存在的.memcache是一种高性能的分布式缓存服务器,一般是为了通过缓存数据库查询的结果,减少访问的次数来提高Web的访问速度的.

   php_memcached 是 php 为 Memcached 提供的 PECL 扩展。由于 Memcached 简单的协议规范,因此,当 Memcached推出后,就有了 PHP 的接口规范和相关扩展。

    memcached 使用了同样的“Key=>Value”方式组织数据,但是它和共享内存等其他等本地缓存有非常大 的区别。Memcached 是分布式的,也就是说它不是本地的。它基于网络连接(当然它也可以使用 localhost)方式完 成服务,本身它是一个独立于应用的程序或守护进程(Daemon 方式)。

   memcached 使用 libevent 库实现网络连接服务,理论上可以处理无限多的连接,但是它和 Apache 不同,它更 多的时候是面向稳定的持续连接的,所以它实际的并发能力是有限制的。在保守情况下 memcached 的最大同时连 接数为 200,这和 Linux 线程能力有关系,这个数值是可以调整的。

   下面说说memcache命令行简单的使用吧.


memcache启动参数

-p  TCP端口号,默认11211

-UUDP监听端口,默认11211,0时关闭

-l绑定地址,默认所有允许,如果设置了,

-d以daemon方式运行

-u绑定使用指定用户运行的进程

-m允许使用内存,单位M(默认64)

-P将PID写入文件


连接:

telnet 127.0.0.1 11211


命令:

set向内存中增加键值对,如果存在,则替换

add向内存中增加键值对

replace如果值不存在,返回NOT_STORED,否则替换值

get获取值

delete删除

flush_all清空所有缓存


stats解释:


STAT pid 22459                             进程ID

STAT uptime 1027046                        服务器运行秒数


STAT time 1273043062                       服务器当前unix时间戳


STAT version 1.4.4                         服务器版本


STAT pointer_size 64                       操作系统字大小(这台服务器是64位的)


STAT rusage_user 0.040000                  进程累计用户时间


STAT rusage_system 0.260000                进程累计系统时间


STAT curr_connections 10                   当前打开连接数


STAT total_connections 82                  曾打开的连接总数


STAT connection_structures 13              服务器分配的连接结构数


STAT cmd_get 54                            执行get命令总数


STAT cmd_set 34                            执行set命令总数


STAT cmd_flush 3                           指向flush_all命令总数


STAT get_hits 9                            get命中次数


STAT get_misses 45                         get未命中次数


STAT delete_misses 5                       delete未命中次数


STAT delete_hits 1                         delete命中次数


STAT incr_misses 0                         incr未命中次数


STAT incr_hits 0                           incr命中次数


STAT decr_misses 0                         decr未命中次数


STAT decr_hits 0                           decr命中次数


STAT cas_misses 0    cas未命中次数


STAT cas_hits 0                            cas命中次数


STAT cas_badval 0                          使用擦拭次数


STAT auth_cmds 0


STAT auth_errors 0


STAT bytes_read 15785                      读取字节总数


STAT bytes_written 15222                   写入字节总数


STAT limit_maxbytes 1048576                分配的内存数(字节)


STAT accepting_conns 1                     目前接受的链接数


STAT listen_disabled_num 0                


STAT threads 4                             线程数


STAT conn_yields 0


STAT bytes 0                               存储item字节数


STAT curr_items 0                          item个数


STAT total_items 34                        item总数


STAT evictions 0                           为获取空间删除item的总数


   很早之前想的一个问题,如果缓存还存在,但是数据已经更新,那么用户不就看不到最新的数据了么?后来一大神给我解决,memcache可以存一个临时的,不是永久的.或者不经常改动的数据,还有统计在线人数,或者单点登录SSO等.都可以用到memcache,那会儿很傻的以为保存整个数据库的数据.

   希望这些也可以给大家个思路吧.至于其他的,还没有接触过很多.暂时确实对memcache的深度应用不足.










本文转自 3147972 51CTO博客,原文链接:http://blog.51cto.com/a3147972/1401401,如需转载请自行联系原作者
目录
相关文章
|
缓存 NoSQL Redis
Python:缓存库mo-cache支持内存、文件、Redis
Python:缓存库mo-cache支持内存、文件、Redis
190 0
|
存储 缓存 算法
Memcached缓存
memcached是应用较广的开源分布式缓存产品之一,它本身其实不提供分布式解决方案。 在服务端,memcached集群环境实际就是一个个memcached服务器的堆积,环境搭建较为简单。 cache的分布式主要是在客户端实现,通过客户端的路由处理来达到分布式解决方案
140 0
Memcached缓存
|
存储 监控 NoSQL
Redis的N种妙用,不仅仅是缓存
redis是键值对的数据库,常用的五种数据类型为字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset) Redis用作缓存,主要两个用途:高性能,高并发,因为内存天然支持高并发 应用场景 分布式锁(string) setnx key value,当key不存在时,将 key 的值设为 value ,返回1。
1861 0
|
存储 缓存 移动开发
Memcached源码分析 - 命令解析(2)
Memcached源码分析 - 网络模型(1)Memcached源码分析 - 命令解析(2)Memcached源码分析 - 数据存储(3)Memcached源码分析 - 增删改查操作(4)Memcached源码分析 - 内存存储机制Slabs(5)Memcached源码分析 - LRU淘汰算法(6)Memcached源码分析 - 消息回应(7) 开篇  这篇博文的目的主要为了讲清楚Memcached在解析命令的处理逻辑,会穿插一些Memcached的命令行操作。
995 0
|
存储 缓存 NoSQL
Redis缓存、MemCached和.Net内部缓存的切换使用
原文:Redis缓存、MemCached和.Net内部缓存的切换使用 接口文件: //IDataCache.
856 0
|
存储 缓存 关系型数据库