python使用memcached

本文介绍如何在linux下安装使用memcached

安装准备:

1.libevent

地址:http://libevent.org/

2.memcached(依赖libevent)

地址:http://www.memcached.org/

3.python-memcached

地址:https://pypi.python.org/pypi/python-memcached

安装libevent

到官网下载安装

注意,编译安装需到默认路径,否则memcached找不到

或者yum install libevent-devel

安装 memcached:

1、下载地址:http://www.memcached.org/files/memcached-1.4.21.tar.gz

2、tar -zxvf memcached-1.4.21.tar.gz

3、./configure --prefix=/usr/local/memcached && make && make install

安装python API组件:

1、下载地址:https://pypi.python.org/packages/source/p/python-memcached/python-memcached-1.53.tar.gz

2、tar xvzf python-memcached-1.53.tar.gz

3、python setup.py install

启动memcached

memcached -d -m 64 -l 10.1.41.113 -p 11211

启动的这个memcached为一个后台守护进程模式(-d), 然后缓存的空间为64M(-m), 监听(-l)服务器10.1.41.113的11212号端口(-p)

root下要加-u 指定user参数

memcached -u bj1822 -d -m 64 -l 10.1.41.113 -p 11211

#杀掉缓存

ps aux|grep memcached

killall memcached

#启动缓存

/usr/local/memcached/bin/memcached -d -m 1024 -c 2048 -p 7788 -t 8 -u nobody

/usr/local/memcached/bin/memcached -d -m 1024 -c 2048 -p 7789 -t 8 -u nobody

memcached -h

memcached 1.2.2

-p <num>      TCP port number to listen on (default: 11211)

-U <num>      UDP port number to listen on (default: 0, off)

-s <file>     unix socket path to listen on (disables network support)

-l <ip_addr> interface to listen on, default is INDRR_ANY

-d            run as a daemon

-r            maximize core file limit

-u <username> assume identity of <username> (only when run as root)

-m <num>      max memory to use for items in megabytes, default is 64 MB

-M            return error on memory exhausted (rather than removing items)

-c <num>      max simultaneous connections, default is 1024

-k            lock down all paged memory

-v            verbose (print errors/warnings while in event loop)

-vv           very verbose (also print client commands/reponses)

-h            print this help and exit

-i            print memcached and libevent license

-b            run a managed instanced (mnemonic: buckets)

-P <file>     save PID in <file>, only used with -d option

-f <factor>   chunk size growth factor, default 1.25

-n <bytes>    minimum space allocated for key+value+flags, default 48

编写python程序:

import memcache, time

mc = memcache.Client([‘10.1.41.113:11211‘], debug=0)

连接到10.1.41.113的11211端口,也就是memcachd启动的端口。

mc.set("some_key", "Some value")

设置key和value,第三个参数默认为0,也就是数据永不超时。

如果这样设置:

mc.set("some_key", "Some value",1)

表示一秒后超时

过两秒打印value的话

time.sleep ( 2)

value = mc.get("some_key")

print value

结果就是None了。

删除

mc.set("another_key", 3)

mc.delete("another_key")

自增和自减

mc.set("key", "1")

mc.incr("key")

mc.decr("key")

关于LRU

LRU是缓冲超过存储上限时删掉队尾也就是最长时间没人访问的元素,参数是-M。但设置了-M和过期时效会存在将未失效的元素删去的风险。所以网上有人改了下代码,增加对过期时效的判断:

返回超时时间的代码:

if (exptime > REALTIME_MAXDELTA)

return (rel_time_t) (exptime - stats.started);

else {

return (rel_time_t) (exptime + current_time);

}

memcached的失效时间格式有两种,当大于60*60*24*30也就是30天的秒数时就是过期距1970年1月1日零时的秒数,否则是有效的秒数。

删除cache的代码:

for (search = tails[id]; tries>0 && search; tries--, search=search->prev) {

if (search->refcount==0) {

item_unlink(search);

break;

}

}

增加条件:

search->exptime && search->exptime <= current_time

这样就可以保证删除的都是过期了的元素了。

时间: 2024-10-12 21:37:49

python使用memcached的相关文章

python 操作Memcached

启动Memcached memcached -d -m 10 -u root -l 10.211.55.4 -p 12000 -c 256 -P /tmp/memcached.pid 参数说明: -d 是启动一个守护进程 -m 是分配给Memcache使用的内存数量,单位是MB -u 是运行Memcache的用户 -l 是监听的服务器IP地址 -p 是设置Memcache监听的端口,最好是1024以上的端口 -c 选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定 -P 是设

python操作memcached以及分布式

memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.LiveJournal 等众多服务中提高 Web 应用扩展性的重要因素. 许多 Web 应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大.访问的集中,就会出现 RDBMS 的负担加重.数据库响应恶化.网站显示延迟等重大影响.这时就该 memcached 大显身手

Python操作Memcached

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

python之Memcached 安装及操作

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

使用python监控memcached基本信息

使用python监控memcached基本信息 使用python监控memcached的基本信息,例如:connections.hitRate.freeMemory.memoryUsage.evictions等等.然后自定义zabbix keys值实现自定义监控模版! 首先安装需要的环境: pip install python-memcached 话不多说,直接上脚本: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'che

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 #!/usr/bin/env python3 #coding:utf8 import memcache #链接 mc = memcache.Client(['139.129.5.191:12000'], debug=True) #插入 mc.set("name", "python&qu

使用 python 实现 memcached 的启动服务脚本 rc

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8

python 使用memcached

转载自 http://oursimplehouse.blog.sohu.com/63588732.html 安装 memcached:1.下载memcached-1.2.2.tar.gz2.tar xvzf memcached-1.2.2.tar.gz3../configure;make;make install 安装python API组件:1.下载python-memcached-1.39.tar.gz2.tar xvzf python-memcached-1.39.tar.gz3.pyth

Python自动化 【第十一篇】:Python进阶-RabbitMQ队列/Memcached/Redis

 本节内容: RabbitMQ队列 Memcached Redis 1.  RabbitMQ 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 实现最简单的队列 send 端 received 端 1.1 Work Queues 在这