Memcached的使用 一、安装和启动二、telnet操作memcached三、python操作memcached

一、安装和启动

         Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

windows

  • 安装:memcached.exe -d install
  • 启动:memcached.exe -d start

centos7

  • 安装:yum install -y memcached
  • 启动:service memcached start
  • 查看进程:ps -ef | grep memcached
  • 杀死进程:kill -9 pid
  • 设置启动参数:/usr/bin/memcached -u memcached -m 64 -p 11211 -l 0.0.0.0 -d start
  • 参数说明:
  • -d:这个参数是让memcached在后台运行
  • -m:指定占用多少内存。一M位单位,默认为64M
  • -p:指定占用的端口。默认端口是11211
  • -l:指定哪些ip地址可以连接

二、telnet操作memcached

登录方式--->> telnet 【ip地址】【端口号】

代码语言:javascript
复制
telnet 127.0.0.1 11211

连接成功后按“空格”键,再按一下“Enter键”,然后就可以开始操作了,memcached存储数据是以键值对的方式存储

常用的命令

(1)set

 在memcached中添加一个“key-value”,如果这个‘key’之前已经存在,那么就会替换,否则就是添加。

参数说明

  • username:是设置的key
  • 0:是否需要压缩
  • 60:过期时间
  • 5:value的字符长度
  • derek:key的value

 (2)get

 从memcached中根据“key来”获取一个数据。

(3)add

给memcached添加键值对,如果memcached中之前存在了这个key,那么就添加失败,否则就添加成功。

(4)delete

删除memcached中的一个键值对

(5)flush_all

删除memcached中所有的键值对,所以要谨慎使用。

(6)incr

给memcached中的那些数字类型的值进行相加操作,都必须是数字类型,否则就会报错

(7)decr

给memcached中那些数字类型的进行相减操作,都必须是数字类型,否则报错。

 (8)stats

查看memcached的状态,一些有用的参数如下:

  • get_hists:get命令命中了多少次
  • get_misses:get命令空了多少次
  • curr_items:当前memcached中的键值对的个数
  • total_connections:从memcached开启到现在总共的连接数
  • curr-connections:当前memcached的连接数
  • memcached:默认最大的连接数是1024

三、python操作memcached

(1)安装

代码语言:javascript
复制
pip install python-memcached

(2)建立链接

代码语言:javascript
复制
import memcache

cache = memcache.Client(['139.199.131.146'],debug=True)

(2)设置数据

代码语言:javascript
复制
# 设置一个键值对
cache.set('username','Tom',time=60)

设置多个键值对

cache.set_multi({'age':20,'email':'111@qq.com'},time=120)

(3)获取数据

代码语言:javascript
复制
cache.get('email')

(4)删除数据

代码语言:javascript
复制
cache.delete('email')

(5)自增长(+1)

代码语言:javascript
复制
cache.incr('num')

(6)自减少

代码语言:javascript
复制
cache.decr('num')

(7)可以设置加多少或者减多少

代码语言:javascript
复制
cache.incr('num',delta=100)
cache.decr('num',delta=50