admin 发表于 2018-1-2 21:35:53

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:42

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:45

其他的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)
页: [1]
查看完整版本: 8.5.2 memcached