码迷,mamicode.com
首页 > 编程语言 > 详细

python3之memcached

时间:2018-02-26 16:19:47      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:--   单位   mem   delete   solaris   最大   兼容   emc   它的   

1、memcached介绍

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。

本质上,它是一个简洁的key-value存储系统。

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

memcached分布式缓存服务器的特点:协议简单、基于libevent的事件处理、内置内存存储方式、memcached不互相通信的分布式

2、Memcached安装和基本使用

Memcached 支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。

linux系统安装memcached首先要安装Libevent库:

sudo apt-get install libevent libevent-deve          自动下载安装(Ubuntu/Debian)
yum install libevent libevent-deve                   自动下载安装(Redhat/Fedora/Centos)

安装memcached:

sudo apt-get install memcached     #ubuntu/debian
yum install memcached              #redhat/fedora/centos
portmaster databases/memcached     #freeBSD

memcached命令的运行:

$ /usr/local/memcached/bin/memcached -h    #获得帮助

如果使用自动安装memcached命令位于/usr/local/bin/memcached。

启动选项:

-d:启动一个守护进程

-m:分配给memcached使用的内存数量,单位是MB

-u:运行memcached的用户

-l:监听的服务器IP地址,可以由多个地址

-p:设置memcached监听的端口,最好是1024以上

-c:最大运行的并发链接数,默认1024

-P:设置保存memcached的PID文件

[root@python bin]# memcached -d -m 1024 -u nobody -l 192.168.146.129 -p 11211 -c 2048 -P /tmp/memcached.pid
[root@python bin]# netstat -lntup|grep 11211
tcp        0      0 192.168.146.129:11211       0.0.0.0:*                   LISTEN      42059/memcached     
udp        0      0 192.168.146.129:11211       0.0.0.0:*                               42059/memcached   

3、python操作memcached

import memcache
#链接memcached服务器,指定IP和端口,debug表示显示错误信息
mc = memcache.Client([192.168.146.129:11211],debug=True)
#设置键值对
mc.set(foo,pythonTomemcache)
#查看键值
print(mc.get(foo))

add:添加一个键值对,如果存在key,重复执行add则异常

mc.add(k1,v1)

replace: 修改某个key的值,如果key不存在,则异常

mc.replace(k2,v2)

set:设置一个键值对,如果key不存在,则创建,如果key存在则修改

mc.set(k3,v3)

set_multi:设置多个键值对,如果key不存在,则创建,如果key存在,则修改

mc.set_multi({key1:value1,key2:value2})

delete:在memcached中删除指定的一个键值对

mc.delete(key1)

delete_multi:在memcached中删除指定的多个键值对

mc.delete_multi([key1,key2,key3])

get:获取一个键值对

get_multi:获取多个键值对

mc.get(key3)
mc.get_multi([key1,key2])

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

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

mc.append(k1,after)
mc.prepend(k2,before)

incr:自增,将memcached中的某个值增加N(默认为1)

decr:自减,将memcached中的某分值减少N(默认为1)

mc.set(k1,10)
mc.incr(k1,2)
print(mc.get(k1))
mc.decr(k1,3)
print(mc.get(k1))

gets:gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空

cas:执行一个检查并设置的操作,它仅在当前客户端最后一次取值后,该Key对应的值没有被其他客户端修改的情况下, 才能够将值写入。

mc.cas(key5,999)
print(mc.gets(key5))

------------------------------------------------------------

python3之memcached

标签:--   单位   mem   delete   solaris   最大   兼容   emc   它的   

原文地址:https://www.cnblogs.com/zhangxinqi/p/8473354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!