`

python使用memcached

阅读更多

python使用memcached

转载:http://oursimplehouse.blog.sohu.com/63588732.html


网上对memcached的讨论好火呀!总结一下


安装 memcached:

1、下载memcached-1.2.2.tar.gz

2、tar xvzf memcached-1.2.2.tar.gz

3、./configure;make;make install


安装python API组件:

1、下载python-memcached-1.39.tar.gz

2、tar xvzf python-memcached-1.39.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 

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

分享到:
评论

相关推荐

    python-memcached python-memcached

    8. **序列化与反序列化**:Python-memcached库默认使用pickle模块进行数据的序列化和反序列化,确保Python对象可以安全地存储和检索。但你也可以自定义序列化方法,以适应特定的数据格式。 9. **错误处理**:库内建...

    python-memcached-latest.tar

    要使用`python-memcached-latest.tar`中的库,首先需要解压文件,然后使用Python的`setup.py`脚本进行安装。这通常涉及以下步骤: 1. 解压文件:`tar -xvf python-memcached-latest.tar` 2. 导航到解压后的目录:`...

    python-memcached

    2. **高效性**:通过使用二进制协议和压缩功能,Python-Memcached确保了与Memcached服务器之间的通信高效且节省带宽。 3. **分布式支持**:Python-Memcached支持连接到多个Memcached服务器,实现数据的分布式存储,...

    13-Python使用Memcached.zip_数据库系统_LINUX_

    标题中的“13-Python使用Memcached.zip”表明这是一个关于使用Python与Memcached交互的教程资料,主要聚焦在Linux操作系统上。Memcached是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的...

    python-memcached-1.58-1.el7.noarch.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    Python库 | tencentcloud-sdk-python-memcached-3.0.335.tar.gz

    使用tencentcloud-sdk-python-memcached,开发者可以执行以下操作: 1. 创建和管理Memcached实例:创建新的Memcached服务实例,调整实例配置,如内存大小、节点数量等。 2. 数据存取:通过SDK,可以便捷地将数据存储...

    Python库 | tencentcloud-sdk-python-memcached-3.0.556.tar.gz

    使用tencentcloud-sdk-python-memcached-3.0.556,开发者可以轻松实现以下场景: - **Web应用缓存**:将频繁访问的数据存储在内存中,减少对数据库的依赖,提升响应速度。 - **数据预加载**:在应用程序启动时,...

    PyPI 官网下载 | tencentcloud-sdk-python-memcached-3.0.315.tar.gz

    《PyPI上的腾讯云Python Memcached SDK:tencentcloud-sdk-python-memcached-3.0.315详解》 PyPI(Python Package Index)是Python开发者常用的软件包仓库,提供了一个广泛且丰富的Python库集合,供全球的开发人员...

    python-memcached-1.48-4.el7.noarch.rpm

    离线安装包,亲测可用

    Python库 | tencentcloud-sdk-python-memcached-3.0.418.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-memcached-3.0.418.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | tencentcloud-sdk-python-memcached-3.0.567.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-memcached-3.0.567.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python3-memcached-master

    Python3-memcached-master 是一个Python 3版本的Memcached客户端库,由Danga公司的Evan Martin最初开发。Memcached是一种高性能的分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据读取...

    python-memcached-dump:从memcache服务器导出数据,只为备份数据

    python-memcached-转储 从memcache服务器导出数据,只为备份数据求助 [ root @ localhost ~ ] # python memcached-dump.py --help usage : memcached - dump . py [ - h ] [ - - host HOST ] [ - - port PORT ] [ - ...

    Python编写memcached启动脚本代码实例

    本文将详细介绍如何使用 Python 实现一个 memcached 的启动脚本,并解释相关知识点。 首先,了解 memcached 的基本功能和特性很重要。memcached 是由 LiveJournal 的 Brad Fitzpatrick 开发的,它是一个轻量级的、...

    Python库 | python-binary-memcached-0.24.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:python-binary-memcached-0.24.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    多台tomcat服务的session共享 memcached

    2. 基于 libevent 的事件处理:Memcached使用 libevent 库来处理事件,从而提高了性能和可扩展性。 3. 内置内存存储方式:Memcached使用内置的内存存储方式来存储数据,提高了性能和可扩展性。 4. memcached 不互相...

    Memcached使用--使用

    1. **语言支持**:Memcached有多种编程语言的客户端库,如PHP、Python、Java、Ruby、Node.js、C++等。 2. **操作接口**:客户端库提供了基本的`get`、`set`、`delete`、`incr`(自增)、`decr`(自减)等操作,以及...

    memcached实例

    使用 Memcached 存储数据非常简单,以下是一个简单的 Python 示例: ```python import pylibmc # 创建客户端连接 client = pylibmc.Client(["127.0.0.1"], binary=True, behaviors={"tcp_nodelay": True}) # 设置...

    memcached缓存使用演示

    例如,对于Python,可以使用`python-memcached`库,Java有`spymemcached`,PHP有`php-memcached`等。以下是一些基本操作: - **添加缓存**:使用`set(key, value, timeout)`方法,将键值对存入缓存,`timeout`表示...

    python-memcached:python memcached客户端库

    该软件是memcached内存缓存守护程序的100%Python接口。 它是客户端软件,它允许将值存储在一个或多个可能是远程的Memcached服务器中。 在google中搜索memcached以获取更多信息。 该软件包最初由Danga的Evan Martin...

Global site tag (gtag.js) - Google Analytics