Memcached操作
标准协议和字段
Memcached的标准协议字段包含以下部分:
- 键,key,任意字符,最大250字节,不能有空格和换行
- 标志位,32比特,不能为0
- 超时时间,单位是秒,0代表永不超时,最长30天,30天之后,就会出现一个类似于准确的时间戳
- CAS值,64比特,唯一值,不重复
- 任意字符,缓存中存储的字节数,也就是字节长度。
CAS值是可选项,通过-c可以禁用,对于一个项目还有其他很多属性值,但是这些属性值client都不会用到,所以也就不太关心了。
No reply不回复
在绝大多数的ASCII命令中,都支持不回复的,但是通常不建议在ASCII中使用这种协议,这样容易造成错误和请求对齐。之所以使用这种不回复的机制,就是为了避免当出现修改操作命令之后需要等待响应回复的等待时间的出现。
在二进制协议中,就是使用这种不回复的机制,如果client支持二进制协议,那就是相当好的。
存储命令
Set:最常用的命令,用来存储数据,修改已经存在的数据,新数据通常放在LRU顶部
Add:存储数据,前提是该数据在memcached中不存在,如果该数据已经在memcached中已经存在,那么add操作是会失败的,但是会将该数据移动到LRU的最顶部。
Replace:当数据存在时,才会去存储替换数据,基本上用不到。
Append:将新数据放在所有数据的最后面,但是不允许超过允许的最大长度,在管理列表时有点作用,该item必须要在memcached中存在,将值添加到原值的后面。
Prepend:和append类似,将新数据放在数据的前面。
Append和prepend实际上是修改键对应的值。
Cas:Check And Set (or Compare And Swap),当距离上一次读去数据之后,该数据备用被更新,才会去存储该数据,

Set设置name为键,12是一个标志位,不能有重复,默认情况下如果通过client去写,不用关心,client会自己定义,不能为0,后面的0是表示永不超时,4代表为设置的值的长度为4,超过4设置就会报错。


当对数据使用set进行修改时,会直接修改所有属性。

Append和prepend修改数据值
Memcached_client.set('name','bobo',time=0)
Memcached_client.add('name1','bobo1',time=0)
Memcached_client.append('name1',' bobo2',time=0)
print(Memcached_client.get('name'))
print(Memcached_client.get('name1'))

检索获取数据
Get:用来检索数据,通过输入键key,memcached返回对应的值,可以同时获取多个键对应的值。
Gets:通过CAS值来检索数据,同时返回给item的CAS值。

删除数据
Delete:如果memcached中存在,就删除对应的键值对。

排序
如果item对象是一个64位整型存储的,可以通过incr/decr来进行排序,只能对正数进行排序,不能对负数进行排序。
超时flush_all
将memcached中的数据全部标记为不可用,通常情况下会跟一个参数,也就是时间,大概多久之后数据失效,这个操作不会影响服务的正常运行,也不会清空cache,只是将这些数据标记为不可用。
Memcached安全思考
Memcached作为一个中间件,能加速访问,由于并不带认证,容易受到攻击破环,所以不建议将memcached放在外网或者是所有人都能访问到的地方,如果只是为了加速用户访问,建议放在服务器后面,由服务器去调度memcached,如果memcached和服务安装在同一台服务器上,尽量用127.0.0.1来启动服务。如果是跨主机的通信,建议还是使用防火墙来做限制。
Memcached操作的更多相关文章
- php Memcache/Memcached操作手册
		php Memcache/Memcached使用教程 Memcache和Memcached 其实是一个东西,只是php中要是用的扩展不一样, 2009年左右有人丰富memcache的用法和性能,编写了 ... 
- Memcached操作以及用法
		Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ... 
- [Memcached]操作
		telnet连接memcached 查看端口是否可访问 # telnet 172.16.1.1 11211 Trying 172.16.1.1... Connected to 172.16.1.1. ... 
- CentOS7下安装Mysql和Memcached 以及 使用C#操作Mysql和Memcached
		我本身是学.net的,但是现在很多主流SQL和NOSQL都是部置在linux下,本着好学的精神,前段时间装了个虚拟机,在其装上CentOS64位的服务器系统,对于英文0基础,linux0基础的我来说, ... 
- Python操作Memcached使用Python-memcached模块
		安装Python的memcached驱动模块 pip install python-memcached 简单的操作示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/ ... 
- Python Memcached Script
		介绍 利用 python 书写了 memcached 的启动等一类操作 尽量的实现脚本的复用性,以及脚本的可扩展性,已达到一劳永逸的效果, 并且添加了 memcached 监控搭建 memcached ... 
- Java client 访问 memcached
		在测试项目中引入了memcached作为缓存层,以下是memcached的缓存配置和调用过程. linux下memcached安装过程 直接参考以前的博文linux下安装memcached过程 不再 ... 
- Memcached应用总结
		Memcached应用总结 memcached是一款高性能的分布式缓存系统,凭借其简单方便的操作,稳定可靠的性能广泛应用于互联网应用中,网上关于memcached介绍的资料也很多,最经典的资料就是&l ... 
- Memcached 使用与简单监测
		Introduce Memcached作为一个高并发内存Cached系统被很多大公司使用,最近也一直在用Memcached做项目也积累了一些相关经验. 本篇博文主要记录Memcached的一些基本使用 ... 
随机推荐
- Hadoop3新特性
			1.添加Classpath isolation,防止不同版本的jar包出现冲突. 2.支持Shell重写. 3.支持HDFS中的擦除编码[Erasure Encoding],默认的EC策略可以节省50 ... 
- 小学生四则运算(java编程)201571030135
			任务1源码在Github的仓库主页链接地址: https://github.com/zhanghh2018/Four-primary-school-pupils 需求分析: 作业总体效果:随机产生n道 ... 
- 利用ZYNQ SOC快速打开算法验证通路(2)——数据传输最简方案:网络调试助手+W5500协议栈芯片
			在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台.之前了解过Xilinx公司面向DSP开发的System Genera ... 
- 【转载】DSP基础--定点小数运算
			在FPGA实现算法过程中,大多数情况是用占用资源较少,延迟较低的定点数代替浮点数参与运算.那么浮点与定点数之间的区别以及转换方式是怎么的?下边这篇博文详细说明了这一问题.虽然是针对DSP芯片的,但思想 ... 
- SourceTree下载bitbucket代码
			SourceTree安装方法 下载地址:https://www.sourcetreeapp.com/ 列几个安装过程中的注意点: 根URL(Root URL):https://bitbucket.or ... 
- 关于clone(java.lang.Object)重写
			1. 需要实现接口java.lang.Cloneable 2. 重写java.lang.Object的clone 3. clone访问权限扩大为public 4. 不实现(java.lang.Clon ... 
- LeetCode算法题-Non-decreasing Array(Java实现)
			这是悦乐书的第283次更新,第300篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第151题(顺位题号是665).给定一个包含n个整数的数组,您的任务是通过修改最多1个元 ... 
- python之迭代器、生成器、面向过程编程
			一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不 ... 
- Linux中断管理
			CPU和外设之间的交互,或CPU通过轮询机制查询,或外设通过中断机制主动上报. 对大部分外设中断比轮询效率高,但比如网卡驱动采取轮询比中断效率高. 这里重点关注ARM+Linux组合下中断管理,从底层 ... 
- xgboost 参数调优指南
			一.XGBoost的优势 XGBoost算法可以给预测模型带来能力的提升.当我对它的表现有更多了解的时候,当我对它的高准确率背后的原理有更多了解的时候,我发现它具有很多优势: 1 正则化 标准GBDT ... 
