必威体育Betway必威体育官网
当前位置:首页 > IT技术

memcache基本操作

时间:2019-10-24 09:45:45来源:IT技术作者:seo实验室小编阅读:62次「手机版」
 

memcache

本文主要介绍memcache在telnet端的一些基本操作和理解。

本文主要参考:

http://www.runoob.com/memcached/memcached-set-data.html

http://memcached.org

好,下面上货。

1、先连接到memcache中

telnet ip port

telnet 192.168.0.11 11211

2、进入后可以进行set add replace get等操作。

set命令

set key flags exptime bytes [noreply] value

其中的含义如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
  • bytes:在缓存中存储的字节
  • noreply(可选): 该参数告知服务器不需要返回数据
  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)

例如:

set xytest 0 30 2

ab

效果如下:

获取xytest

如果经过一段时间(大于过期时间),再次查找xytest这个key的值,会发现已经没有这个值了。

add命令和replace命令

add命令和repalce命令可以放在一起进行对比。

这两个命令也能对key值进行设置,那么区别在于什么呢,既然已经有了set,为什么还有add和replace呢?

原因是这样的,

add命令只有当key值不存在的时候才会生效。

repalce命令只有当key值存在的时候才生效。

也就是说,set命令相当于add和repalce命令的组合,无论值是否存在,都能够生效。

APPend和prepend命令

附加命令(能够在某个key的对应值的前面或者后面附加值)。

set xytest 0 0 2

ab

append xytest 0 39 2

cc

需要注意的是append后,可以修改过期时间

同样的prepend能够在前面添加内容

cas命令(checkandsave)

cas命令的作用

主要是为了分布式环境中更新的一致性问题。

每次更新的时候需要指定要更新的key的cas_token,这个cas_token可以通过gets命令得到,如下:

命令格式如下:

cas key flags exptime bytes unique_cas_token [noreply]value

例如:

cas xytest 0 0 2 23

vv

可以把这个cas_token理解成key的版本标识(本质上是memcache会有个全局的计数器,每次的写入操作之后,计数器的值都会加1)。每当key的value被修改的时候,memcache内部需要更新这个cas_token。这样做的目的就是保证当前只有一个client对memcache进行操作。如果没有操作成功,那就说明有其他的client对这个key-value进行了操作。那么需要重新利用gets取到当前的cas_token,然后继续进行cas操作。

get命令

主要作用,获取key的value值

get命令支持多个key同时取出

gets命令

主要作用是获取key的value值,并且带有cas_token

delete命令

删除某个key

incr/decr命令

对应的还有decr命令,是对某个key进行减法操作。

在进行decr命令的时候最小值就是0,如果当前是0 的话,那么减法之后还是0。

我们看到cas_token是变化的,就是说这个decr操作是进行了,但是最小是就是0。

文章最后发布于: 2018-04-15 12:09:37

相关阅读

小白谈memcache和memcached的区别

原文地址为:小白谈memcache和memcached的区别看到下面很多人评论说这个文章没有用,先略去.可以不看.写这个的时候是2011年,转眼3年

Memcached与Libmemcached介绍及其简单使用

如何通过源代码先大体学习库忽略具体实现细节呢? 1、首先学会库中开放出来程序员可调用函数API,学习其参数配置,大体先忽略被库内部

分享memcache和memcached安装过程

Memcache是什么?Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。它

分享到:

栏目导航

推荐阅读

热门阅读