Python标准库系列之Memcache模块

这个模块是一个Python操作memcached的一个API接口。

Memcached官网:http://memcached.org/
模块官网:https://pypi.python.org/pypi/python-memcached/

What is Memcached?

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

以上内容摘自官网的介绍,具体信息访问官网


安装Memcached

包安装

Ubuntu

CentOS

源码安装

Memcached源码包安装的时候需要依赖于libevent

编译安装memcached

具体参数见./configure --help全选项,SASL支持需要一些可选附加库。

启动

我这里安装的时候是采用包的方式进行安装的。

参数说明

参数 描述
-d 是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB
-u 是运行Memcache的用户
-l 是监听的服务器IP地址
-p 是设置Memcache监听的端口,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-P 是设置保存Memcache的pid文件

设置开机自启动

关闭memcached

测试

先查看11211端口是否启动

使用telnet查看启动的11211端口是否可以,可以则测试OK,否则就需要你拍错了,但愿没有问题。

如果出现以下内容就代表启动成功!

Memcache使用

安装Memcache

下载模块包,目前最新版

解压并安装

进入Python解释器导入模块,如果导入成功就表示模块安装成功。

首次体验

更多的使用方法

设置超时时间

设置值,如果存在就报错

修改值,不存在则返回False

设置多个值,值不存在则创建,存在则修改

删除一个值

删除多个值

获取一个值和获取多个值

修改指定key的值,在该值后面追加内容

修改指定key的值,在该值 前面 插入内容

自增与自减,将Memcached中的某一个值加或减少N(N默认为1)

比如设置了这么一个值:

现在A用户和B用户同时获取到了这两个值,如果有其中的任何一个用户对这个值进行了修改,那么另外一个用户在对这个值进行操作的时候就会报错。

如果要解决以上的问题可以使用getscas,测试代码如下:

多节点的操作

首先在服务器上面起四个memcached实例,每个实例都是一个单独的memcached服务

多节点数据存储流程

  1. 先将一个字符串转换为一个数字
  2. 得出的结果和节点的数量进行除法运算
  3. 得出的结果肯定在节点数量之间,余数是几,就在那台节点上面存放数据

如图所示

基于Memcached的Session实例

主程序脚本

模板文件

设置Session的小模块

演示如下:

 

1 4 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部