memcached实战系列(三)memcached命令使用

memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用。这里的命名是常用的crud命令的演示。

1.1.1. memcached命令的格式

标准协议:Memcached所有的标准协议包含在对item执行命令过程中,一个item包含两行:

第一行:Key Flags ExpirationTime Bytes

Key:Key 用于查找缓存值

Flags:一个32位的标志值,客户机使用它存储关于键值对的额外信息(譬如用户规定1 json 2 xml )用户自己的业务标记使用场景 比如 我可以设置为1缓存的是网页的热点2缓存的是app的热点。

Expiration time:在缓存中保存键值对的时长(以秒为单位,0表示永远)(服务器挂了数据没了 最多30天时间因为memcached没有提供持久化的功能)

Bytes:在缓存中存储的字节数(与存储的值不对应CLIENT_ERROR bad data chunk)存储的字节数一定要与实际存储值得字节数对应,否则无法存入报错CLIENT_ERROR
bad data chunk

比如存入值3字节则值bytes为3值例如ksf

第二行:Value:存储的值(始终位于第二行)

noreply:可以在命令的第一行后面加入noreply,以避免在处理交互命令的时候,等待服

务端的返回

 向Memcached写入值

命令有:set、add、replace、append、prepend、cas

首先进入我们的命令行

cd /usr/shareniu/memcached/bin
./memcached -d -m 10 -u root -l 0.0.0.0 -p 18887-c 256 -P /tmp/memcached.pid

如下图所示:

 

1.1.2. memcached命令set

set:用于向缓存添加新的键值对,如果键已经存在,则之前的值将被替换(update)

演示:

set user 0 60 3
ksf

1.1.3. memcached命令add

add:仅当缓存中不存在键时,add命令才会向缓存中添加一个键值对,如果缓存中已经存在键,则之前的值将仍然保持,服务器响应NOT_STORED(说白了就是存在不执行命令不存在添加)

演示:

add user 0 0 3
ksf

1.1.4. memcached命令replace

replace:仅当键已经存在时,replace命令才会替换缓存中的键。如果缓存中不存在键,

服务器响应NOT_STORED

演示:

replace user 0 0 3
ksf

1.1.5. memcached命令append

append:是在现有缓存数据后面新增数据。如果key不存在,服务器响应NOT_STORED

演示:

append  user 0 0 3
ksf

1.1.6. memcached命令prepend

prepend:是在现有缓存数据前面新增数据。如果key不存在,服务器响应NOT_STORED

演示:

prepend user 0 0 3
niu

1.1.7. memcached命令cas

cas(Check And Set ):检查和更新,只有从你读取数据后,别人没有更新这

个数据,才能够正确保存。就是版本控制,通常和gets配合使用必须等于当前的版本才能更新小于大于都不行.原子性操作

演示:

gets u1

查询结果

VALUE u1 0 3 4

cas user 0 0 2 10(版本号)

aa

获取数据的命令有:get 、gets

delete user

get用来获取数据,gets获取的是数据+版本号

1.1.8. memcached命令delete

 删除数据的命令:delete

演示:

1.1.9. memcached命令 incr/decr

 incr/decr命令:如果缓存数据中存储的是数字形式的字符串,则可以使用

incr/decr 对数据进行递增和递减操作,操作后的值不会为负数

演示:

incr  user 10(ok)
incr  user -10(CLIENT_ERROR invalid numeric delta argument)
decr user 10(为0后不在减少)
decr user -10(CLIENT_ERROR invalid numeric delta argument)
时间: 2024-07-28 19:54:10

memcached实战系列(三)memcached命令使用的相关文章

memcached实战系列(四)memcached stats命令 memcached优化

memcached提供一系列的命令进行优化的查看,方便我们调整我们的存储策略,查看我们的使用率,内存的使用率以及浪费情况.常用的命令有stats.stats settings.stats items.stats slabs 1.1.1. memcached  stats命令 memcached  stats命令主要是查询服务器的运行状态和其他内部数据,包含如下这些: 1:pid :服务器进程ID 2:uptime :服务器运行时间,单位秒 3:time:服务器当前的UNIX 时间 4:versi

memcached实战系列(一)memcached安装

下载并安装Memcached服务器端 我用的是cenos6.5 64位系统. libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口,具有很高的性能.memcached需要依赖libevent库所以先下载安装libevent库. 1:需要安装libevent,下载地址http://download.csdn.net/detail/qq_30739519/9485589 上传到服务器.解压 tar -zxvf libevent-2.0.

memcached实战系列(五)Memcached: List all keys 查询所有的key

memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看.但是近期确实需要查看商城的数据所有值,于是乎研究了一下.还别说还真有这个命令,只是隐藏的深而已. 需要还是连接到我们的服务器吧. telnet 127.0.0.1 18887 stats items命令如下:看以参考之前的命令文章看具体的使用.效果如下:   这个命令告诉我们有三个key在这个卡槽

memcached实战系列(二)memcached参数以及启动

memcached启动的时候配置的参数也比较多.在这里我就做一个汇总,需要的时候直接查看参数以及参数的含义. 下面是参数的定义以及解释. 1.1.1. 参数说明 -d选项是启动一个守护进程 -m是分配给Memcache使用的内存数量,单位是MB,这里是10MB -u是运行Memcache的用户,这里是root -l是监听的服务器IP地址,这里指定了服务器的IP地址192.168.1.106如果是多个的话逗号分隔,格式IP地址:端口号 例如-l指定192.168.0.184:19830,192.1

将同时推出“高并发之Redis初级”“高并发之Redis高级”“高并发之Memcached实战”系列课程

将同时推出"高并发之Redis初级""高并发之Redis高级""高并发之Memcached实战"系列课程,敬请关注,谢谢!   "高并发之Redis初级":http://edu.csdn.net/course/detail/482 "高并发之Redis高级":http://edu.csdn.net/course/detail/483 "高并发之Memcached实战": http://e

xen虚拟化实战系列(三)之xen虚拟机复制

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1284621 xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装xen虚拟化实战系列(二)之xen虚拟机安装xen虚拟化实战系列(三)之xen虚拟机复制xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法xen虚拟化实战系列(六)之x

BootStrap智能表单实战系列(三)分块表单配置详解_javascript技巧

什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的.Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品. Bootstrap 包的内容 基本结构:Bootstrap 提供了一个带有网格系统.链接样式.背景的基本结构.这将在 Bootst

memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程

1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte 如果>1MB,无法存储丢弃 取最小冗余的slab class 如:有48,96,120,存90会选择96   1.1.2. 按顺序寻找可用chunk顺序 (1)slot:检查slab回收空间slot里是否有剩余chunk delete:delete时标记到slot exptime:get时检查的过期

memcached实战系列(六)理解Memcached的数据存储方式

Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考memcached启动参数配置章节. 分配给Slab的内存空间被称为Page,默认是1M.一个Slab下可以有多个Page. 2:然后把一个Page分成很多个chunk块,chunk块是用于缓存记录的空间.Chunk的 大小是先有一个基本值,然后根据增长因子来增大.每一个page中chunk是相等的