您的位置:首页 > 数据库 > Memcache

Python之路【第十篇】Python操作Memcache、Redis、RabbitMQ、SQLAlchemy、

2016-01-23 06:23 681 查看

Memcached

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

1、Memcached安装配置

#安装倚赖包
yum install libevent-devel
#安装软件
yum -y install memcached
#启动服务
/usr/bin/memcached -d -u root -l 192.168.7.102 -m 1024 -p 11211
#命令解释
'''
启动Memcache 常用参数
-p <num>      设置TCP端口号(默认不设置为: 11211)
-U <num>      UDP监听端口(默认: 11211, 0 时关闭)
-l <ip_addr>  绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-d                    以daemon方式运行
-u <username> 绑定使用指定用于运行进程<username>
-m <num>      允许最大内存用量,单位M (默认: 64 MB)
-P <file>     将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用
'''


2、Memcached命令

#测试连接Memcached
telnet hostip port
telnet 192.168.7.102 11211
#例子
'''
telnet 192.168.7.102 11211
Trying 192.168.7.102...
Connected to 192.168.7.102.
Escape character is '^]'.

#连接成功之后输入命令即可
'''

存储命令: set/add/replace/append/prepend/cas
获取命令: get/gets
其他命令: delete/stats..


3、python操作Memcached

#linxu下安装pip
yum -y install pip
#安装python操作Memcached模块
pip install python-memcached


4、Memcached常用操作

import memcache #导入模块

mc = memcache.Client(['10.211.55.4:12000'], debug=True) #连接memcached
mc.set("foo", "bar")#插入一条数据
ret = mc.get('foo')#获取一条数据的值
print ret


5、Memcached源码

#!/usr/bin/env python
#-*- coding:utf-8 -*-
__author__ = 'luotianshuai'

import Queue
import threading

messagequeue = Queue.Queue(10) #创建最多有10个元素的队列

def producer(i):#创建生产者
while True:
messagequeue.put(i)

def consumer(i):#创建消费者
while True:
messagequeue.get(i)

for i in range(5): #创建5个线程不断的生产
t = threading.Thread(target=producer,args=(i,))
t.start()

for i in range(2): #创建5个线程不断的消费
t = threading.Thread(target=consumer,args=(i,))
t.start()


demo_code
4、RabbitMQ生产者消费者模型

对于RabbitMQ来说,生产和消费不再针对内存里的一个Queue对象,而是某台服务器上的RabbitMQ Server实现的消息队列。

未完待续。。。。

更多请看:http://www.cnblogs.com/wupeiqi/articles/5132791.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: