内容目录:
缓存
- memcache
- redis
memcache
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Memcached安装配置
#安装依赖包 yum install libevent-devel #安装软件 yum -y install memcached #启动服务 /usr/bin/memcached -d -u root -l 192.168.62.124 -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 一起使用 ‘‘‘
memcache命令
Memcached命令 存储命令: set/add/replace/append/prepend/cas 获取命令: get/gets 其他命令: delete/stats..
python操作memcache
python操作Memcached使用Python-memcached模块 下载安装:https://pypi.python.org/pypi/python-memcached
操作
import memcache mc = memcache.Client([‘192.168.62.124:11211‘], debug=True)#链接memcache mc.set("foo", "bar") #插入数据 ret = mc.get(‘foo‘) #获取数据 print(ret) #debug = True 表示运行出现错误时,现实错误信息,上线后移除该参数。
memcache天生支持集群
python-memcached模块原生支持集群操作,其原理是在内存维护一个主机列表,且集群中主机的权重值和主机在列表中重复出现的次数成正比
主机 权重 1.1.1.1 1 1.1.1.2 2 1.1.1.3 1 那么在内存中主机列表为: host_list = ["1.1.1.1", "1.1.1.2", "1.1.1.2", "1.1.1.3", ]
如果用户根据如果要在内存中创建一个键值对(如:k1 = "v1"),那么要执行一下步骤:
- 根据算法将 k1 转换成一个数字
- 将数字和主机列表长度求余数,得到一个值 N( 0 <= N < 列表长度 )
- 在主机列表中根据 第2步得到的值为索引获取主机,例如:host_list[N]
- 连接 将第3步中获取的主机,将 k1 = "v1" 放置在该服务器的内存中
代码实现如下:
mc = memcache.Client([(‘1.1.1.1:12000‘, 1), (‘1.1.1.2:12000‘, 2), (‘1.1.1.3:12000‘, 1)], debug=True) mc.set(‘k1‘, ‘v1‘)
redis
时间: 2024-12-25 05:56:15