51学通信论坛2017新版
标题:
8.5.2 memcached
[打印本页]
作者:
admin
时间:
2018-1-2 21:35
标题:
8.5.2 memcached
memcached(
http://memcached.org/
)是一种快速的、内存键值对象的缓存服务器。它一般置于数据库之前, 用于存储网页服务器会话数据。 Linux 和 OS X 点此链接(
https://code.google.com/p/memcached/wiki/NewInstallFromPackage
) 下 载, 而 Windows 系 统 在 此(
http://zurmo.org/wiki/installing-memcache-on-windows
) 下载。如果你想要尝试使用,需要
一个 memcached 服务器和 Python 的驱动程序。
当然存在很多这样的驱动程序, 其中能在 Python 3 使用的是 python3-memcached(
https://github.com/eguven/python3-memcached
),可以通过下面这条命令安装:
$ pip install python-memcached
连接到一个 memcached 服务器之后,可以做以下事项:
• 赋值和取值
• 其中一个值的自增或者自减
• 删除其中一个键
数据在 memcached 并不是持久化保存的,后面的可能会覆盖早些写入的数据,这本来就是它的固有特性, 因为它作为一个缓存服务器,通过舍弃旧数据避免程序运行时内存不足的问题。
你也可以同时连接到多个 memcached 服务器。不过下面的例子只连到一个:代码:
import memcache
mc = memcache.Client(['10.1.1.100:11211'],debug=1) #10.1.1.100是51学通信Openstack的控制节点,已安装好memcached server端
mc.set("foo","bar")
value = mc.get("foo")
print(value)
mc.set("foo","beer")
value = mc.get("foo")
print(value)
复制代码
输出:
bar
beer
复制代码
可以看到,memcached的值不是持久化保存,通过键值对来存储,有新数据就会覆盖旧数据。并且是字典的结构。
作者:
admin
时间:
2018-1-2 22:10
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:
1)Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
2)内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
3)性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
作者:
admin
时间:
2018-1-2 22:21
其他的noSQL数据库:
Site Python API
Cassandra(
http://cassandra.apache.org/
) pycassa(
https://github.com/pycassa/pycassa
)
CouchDB(
http://couchdb.apache.org/
) couchdb-python(
https://github.com/djc/couchdb-python
)
HBase(
http://hbase.apache.org/
) happybase(
https://github.com/wbolster/happybase
)
Kyoto Cabinet(
http://fallabs.com/kyotocabinet/
) kyotocabinet(
http://fallabs.com/kyotocabinet/pythondoc/
)
MongoDB(
http://www.mongodb.org/
) mongodb(
http://api.mongodb.org/python/current/
)
Riak(
http://basho.com/riak/
) riak-python-client(
https://github.com/basho/riak-pythonclient
)
欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/)
Powered by Discuz! X3