memcached 的学习

1.memcached 是什么东西?

memcached z是一个自由,源码开放,高性能,分布式内存对象缓存系统,目的在于减轻数据库负载来使动态web应用程序提速

通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态,数据库驱动网站的速度

memcached 基于一个存储键/值对的hashmap

关于hashmap我会在以后的博文中专门写

2.memcached 的安装

我用的是ubuntu,安装memcached 需要libevent 库的支持,关于libevent 我会在后续的学习中写

sudo apt-get install libevent

sudo apt-get install memcached

3.memcached 的使用

memcached 有四种类型的命令

(1)存储命令(set/add/replace/append/prepend)

首先得启动memcached

启动命令和效果:


第二步:用telnet 连接


记得移动要在客户端输入set/add等命令(我刚开始学的时候,在服务器端输入数据,咋都不出结果,尴尬,自己有点傻)

输入上面的set命令之后,就会自动出现STORED 说明你输入的数据已经存储(客户端的显示)

memcached 端就会显示你存储的信息


接下来重点解释一下这些命令都是什么意思?

memcached 主要有四种类型的命令

(1)存储命令(set/add/replace/prepend)指示服务器存储一些由键值标识的数据,客户端发送一条命令,后面跟着数据区块,然后,客户端等待接收服务器回传的命令行,指示成功与否

(2)读取命令(get/bget/gets)指示服务器返回与键值相符合的数据,客户端发送一行命令,包括所请求的键值,服务器每找到一项内容,都会发送会客户端一行关于这项内容的信息,紧跟着是对应的数据区块,直到服务器以一行“END”回应命令结束

(3)状态命令(stat)被用于查询服务器的运行状态和其他内部数据

(4)其他命令:flush_all, version, quit 等

接下来解释具体的命令,这里读起来比较绕,我下面会用图文来说明,比较容易理解

1》存储命令(set/add/replace/prepend)

命令的格式

<command><key><flags><exptime><bytes>

<data>

命令解释:

<command>:set/add/replace/prepend

<key>:关键字

<flags>:客户机使用它存储关于键值的额外信息

<exptime>:该数据的存活时间,  如果是0,就是永远存活

<bytes>存储字节数

<data block>存储数据块

存储命令的区别:

(1)set :无论如何都进行存储

(2)add:只有数据不存在时添加

(3)replace:只有数据存在时进行替换

下面对这些命令进行一一验证:

客户端输入的命令



服务器的响应


因为cjy 已经存在:所以add 命令只能增加不存在的数据

客户端输入命令

服务器响应命令



replace 用法:

客户端输入命令

服务器响应命令


因为aaa 不存在,所以不能进行替换

cjy 存在所以可以替换

客户端输入命令

服务器响应命令


接下来获取一下cjy 的值,看是否替换成功

客户端获取命令

服务器响应命令



接下来修改一下数据的存活时间

客户端输入命令

服务器响应命令

十秒过后,再去获取数据,数据已经没有了

存储命令已经差不多介绍完了

2.读取命令

get<key>

key 可以表示一个或者多个键值,由空格隔开的字串

刚才在上面已经演示过了

3.删除命令

delete <key>

客户端输入命令

服务器响应命令

4.高级命令:gets cats

客户端的命令

服务器的响应


可以看到get 命令后面有三个参数,第三个参数用来检查参数的值是否发生改变,如果发生改变,最后一个参数也会发生变化

还有cas 命令

但是我的电脑上好像检验不出来,就不上图了

我直接说cas命令

cas cjy 0 0 7 6

最后一个参数必须和gets命令的最后一个参数相同,

如果不同,就会出现EXISTS

cas 就是check and set ,只有当最后一个参数与gets 所获取的参数匹配时才能进行存储

这种设计的目的是防止使用改变了的value/key对

上面这些总结均是参考memcached 源码剖析笔记,很好的笔记,对初学memcached 很有帮助







这篇文章就先写这么多都是基础命令下一篇深度剖析实现

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值