党员学习笔记

党员学习笔记,第1张

Python学习笔记-Memcached

Memcached是一个分布式内存对象缓存系统,将数据缓存在内存中以减少对数据库的访问,从而提高动态网页的访问速度。他的基本结构是key/value(键值对)。让我们看看如何在Python中使用它。


首先,让我们安装服务器端。Beans直接安装在CentOS7机器上。

[root@sydnagios ~]# yum install memcached
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                     | 3.6 kB     00:00
epel/x86_64/metalink                                     | 2.0 kB     00:00
epel                                                     | 4.3 kB     00:00
extras                                                   | 3.4 kB     00:00
updates                                                  | 3.4 kB     00:00
(1/5): epel/x86_64/group_gz                                | 170 kB   00:00
(2/5): epel/x86_64/updateinfo                              | 671 kB   00:00


然后服务器运行。我在这个里面指定的端口是12000,如果有防火墙的话别忘了打开相应的端口。

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

打开防火墙端口

 firewall-cmd --add-port=12000/tcp --permanent


接下来,安装Python的客户端模块,并从这里下载https://pypi.python.org/pypi/python-memcached。

解压到sys.path对应的目录,就可以直接使用了。


看看第一个例子。可以通过设置和获取数据来设置数据。调试用于显示错误的生产环境。不要在室内使用。


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author Yuan Li
import memcache
mc = memcache.Client(['10.2.1.107:12000'], debug=True)
mc.set("foo", "bar")
mc.add("name","John")
print( mc.get('foo'))
print(mc.get('name'))
-----------
bar
John


memcached的第二个特点是默认支持集群,原理是在内存中创建一个主机列表;每个主机都有一个权重,权重的数量与列表中出现的主机数量成正比。该算法可以决定将键值对放在哪个服务器的内存中。


示例2

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')


除了get和set之外,他还有以下常见的功能


add
添加一个键-值对。如果该键已经存在,重复添加 *** 作是不正常的。


replace
replace修改键值。如果该键不存在,它将是一个异常。


set和set_multi

设置一个键值对。如果该键不存在,请创建它。如果键确实存在,请修改它。
set_multi设置多个键值对。如果该键不存在,请创建它。如果键确实存在,请修改它。


delete和delete_multi

在Memcached中删除一个指定的键值对
delete_multi在Memcached中删除多个指定的键值对。


追加和前置

Append修改指定键的值,在它之后追加内容
prepend修改指定键的值,并在它之前插入内容。


decr和incr

Incr是自增的,在Memcached中增加某个值N(N默认为1)
decr是自减的,在Memcached中减少某个值N(N默认为1)


获取和转换

这种组合可以避免产生脏数据。如果其他用户在返回gets数据和cas数据的过程中执行了get,则不允许修改。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/778169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存