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)
memcached实战系列(三)memcached命令使用的更多相关文章
- memcached实战系列(四)memcached stats命令 memcached优化
memcached提供一系列的命令进行优化的查看,方便我们调整我们的存储策略,查看我们的使用率,内存的使用率以及浪费情况.常用的命令有stats.stats settings.stats items. ...
- memcached实战系列(五)Memcached: List all keys 查询所有的key
memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看 ...
- memcached实战系列(一)memcached安装
下载并安装Memcached服务器端 我用的是cenos6.5 64位系统. libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口,具有 ...
- memcached实战系列(二)memcached参数以及启动
memcached启动的时候配置的参数也比较多.在这里我就做一个汇总,需要的时候直接查看参数以及参数的含义. 下面是参数的定义以及解释. 1.1.1. 参数说明 -d选项是启动一个守护进程 -m是分配 ...
- WCF开发实战系列三:自运行WCF服务
WCF开发实战系列三:自运行WCF服务 (原创:灰灰虫的家 http://hi.baidu.com/grayworm)上一篇文章中我们建立了一个WCF服务站点,为WCF服务库运行提供WEB支持,我们把 ...
- Hexo系列(三) 常用命令详解
Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...
- ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程
前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的 ...
- memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程
1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte ...
- memcached实战系列(六)理解Memcached的数据存储方式
Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考 ...
随机推荐
- codeforces 888G Xor-MST
You are given a complete undirected graph with n vertices. A number ai is assigned to each vertex, a ...
- hdu 5392
Sample Input 2 3 1 3 2 6 2 3 4 5 6 1 Sample Output 2 6 题意:给一个转置求它的循环长度 题解:分解成循环求最小公倍数 #include< ...
- 【USACO 5.3.1】量取牛奶 迭代
Description 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位——译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就 ...
- [bzoj1143][CTSC2008]祭祀
题意:给定一个n个点m条边的有向无环图,你要选出最多的点,并且满足任意两点之间都不存在通路.2)输出每个点选了它之后还是否有最优解. n<=100 m<=1000 题解:每个点拆两个点 ...
- Python【第四课】 模块 and 包
本篇内容 模块基础和导入(import,from...import...) 包常识和导入(import,from...import...) 函数式第一类对象 1.模块基础和导入 1.1 模块认识 什么 ...
- ScalaPB(0): 找寻合适的内部系统微服务集成工具
前一段时间我们探讨了SDP的一个基于集群的综合数据平台解决方案,由多种数据库组成,包括:JDBC, Cassandra 及MongoDB.其中Cassandra和MongoDB属于分布式数据库,可以在 ...
- mooc-python语言语法week3-6
week3 1.类型的概念:程序编程不允许有歧义的数据类型存在,所以对数据进行了划分,python语言类型分为,数字类型.字符串类型.元组类型.列表类型.文件类型.字典类型. i:数字类型: pyth ...
- delphi弹出信息框大全
1. 警告信息框 MessageBox(Handle,'警告信息框','警告信息框',MB_ICONWARNING);2.疑问信息框 MessageBox(Handle,'疑问信息框','疑问信息框' ...
- Arduino抢答器
0.部分需要掌握的知识点和注意事项 (1)面包板的结构 (2)按键的结构:按键按下时,左右两侧连通:按键松开后,左右两侧断开,但1号与2号相连,3号与4号相连,即按键松开时,同侧不相连,相连不同侧. ...
- js将当前时间格式化为年-月-日 时:分:秒
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...