标准协议和字段

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操作的更多相关文章

  1. php Memcache/Memcached操作手册

    php Memcache/Memcached使用教程 Memcache和Memcached 其实是一个东西,只是php中要是用的扩展不一样, 2009年左右有人丰富memcache的用法和性能,编写了 ...

  2. Memcached操作以及用法

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...

  3. [Memcached]操作

    telnet连接memcached 查看端口是否可访问 # telnet 172.16.1.1 11211 Trying 172.16.1.1... Connected to 172.16.1.1. ...

  4. CentOS7下安装Mysql和Memcached 以及 使用C#操作Mysql和Memcached

    我本身是学.net的,但是现在很多主流SQL和NOSQL都是部置在linux下,本着好学的精神,前段时间装了个虚拟机,在其装上CentOS64位的服务器系统,对于英文0基础,linux0基础的我来说, ...

  5. 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 #!/ ...

  6. Python Memcached Script

    介绍 利用 python 书写了 memcached 的启动等一类操作 尽量的实现脚本的复用性,以及脚本的可扩展性,已达到一劳永逸的效果, 并且添加了 memcached 监控搭建 memcached ...

  7. Java client 访问 memcached

    在测试项目中引入了memcached作为缓存层,以下是memcached的缓存配置和调用过程. linux下memcached安装过程 直接参考以前的博文linux下安装memcached过程  不再 ...

  8. Memcached应用总结

    Memcached应用总结 memcached是一款高性能的分布式缓存系统,凭借其简单方便的操作,稳定可靠的性能广泛应用于互联网应用中,网上关于memcached介绍的资料也很多,最经典的资料就是&l ...

  9. Memcached 使用与简单监测

    Introduce Memcached作为一个高并发内存Cached系统被很多大公司使用,最近也一直在用Memcached做项目也积累了一些相关经验. 本篇博文主要记录Memcached的一些基本使用 ...

随机推荐

  1. nginx + flask + uwsgi + centos + python3 搭建web项目

    1. python3之前已经搭建好,安装flask,使用 pip3 intall flask,这个比较简单,就不过多介绍 2.我在 /usr/local/nginx/html3  (html3是我新建 ...

  2. 【原】Java学习笔记017 - 面向对象

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...

  3. 使用Python的Mock库进行PySpark单元测试

    测试是软件开发中的基础工作,它经常被数据开发者忽视,但是它很重要.在本文中会展示如何使用Python的uniittest.mock库对一段PySpark代码进行测试.笔者会从数据科学家的视角来进行描述 ...

  4. Redis其他常用操作

    详细Redis操作手册: http://doc.redisfans.com/ ============================================================= ...

  5. git 忽略 .idea文件

    多人开发时,会出现明明在gitignore中忽略了.idea文件夹,但是提交时仍旧会出现.idea内文件变动的情况 原因.idea已经被git跟踪,之后再加入.gitignore后是没有作用的 解决办 ...

  6. springMVC第二天——高级参数绑定与其它特性

    大纲摘要: 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Controller方法返回值 4.Springmvc中异常处理 5 ...

  7. 分布式任务调度平台XXL-JOB搭建教程

    关于分布式任务调度平台XXL-JOB,其实作者 许雪里 在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式 ...

  8. mysql常见问题处理

    出现: Access denied for user ''@'localhost' to database ' 2.error: Found option without preceding grou ...

  9. 阿里云 轻量应用服务器(LAMP) 使用日志记录

    phpStudy(PHP运行环境一键安装包) https://www.jb51.net/softs/182860.html 0:PHP开发工具 https://netbeans.org/downloa ...

  10. Mac之日常操作

    1.创建root用户使用最高权限 sudo passwd root 一般情况下,使用临时获取最高权限 sudo vim /etc/shells 2. apache操作 #启动Apache sudo a ...