博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UltraMemcache , UltraMySQL 初试
阅读量:6645 次
发布时间:2019-06-25

本文共 1624 字,大约阅读时间需要 5 分钟。

博客分类:
 

 

  • 这两个是由ESN公司开发的的memcache、mysql客户端
  • 显著特征是:
    • 完全由C、C++完成,更高效
    • 可以与gevent的socket monkey patch很好的配合,实现异步的memcache和mysql访问
  • 文档几乎为0,没有可供参考的例子。摸索了一点点东西记录如下:
    • UltraMemcache
      • 安装
        • 从github或者pypi上下载umemcache,解压后 python setup.py build install 安装
      • 使用
        • Java代码  
          1. import umemcache  
          2. mem_client = umemcache.Client('127.0.0.1:11211')  
          import umemcachemem_client = umemcache.Client('127.0.0.1:11211')
          Java代码  
          1. mem_client.connect()  
          mem_client.connect()
      • 问题
        • mem_client.is_connected()返回时True,说明连接成功,但是在mem_client.set('a', 'a')时,会爆出 error: [Errno 32] Broken pipe的错误。
          • 已解决:需要在set之前先调用connect方法
        • 而且按照set的doc,这个set方法的两个参数key value 都必须是string 或者 read-only buff。set('1', 2)这样都是不行的。所以,实际使用中可能需要自己pickle序列化。
    • UltraMySQL
      • 从github或者pypi上下载umysql,安装方法和umemcache一致
      • 使用
        • Python代码  
          1. import umysql  
          2. con = umysql.Connection()  
          3. con.connect('127.0.0.1'3306'root''10612''test'1'utf8')  
          4. result = con.query('show tables;')  
          import umysqlcon = umysql.Connection()con.connect('127.0.0.1', 3306, 'root', '10612', 'test', 1, 'utf8')result = con.query('show tables;')
        •  connect方法接受5个参数,分别是:host, port, username, passwd, db-name, 是否autocommit, character-set。port要求是int,character-set的设置由于缺乏文档,试了几次才试出来utf-8编码是'utf8'。
        • connect对象提供的接口很少,只有一个query用来查询。
        • 查询结果也比较简单,只提供fields和rows两个属性来描述查询结果。
  • 能与gevent的monkey patch结合对于pythoner来说真是大大的利好,更何况纯C的实现,我猜测性能是很客观的;另外这两个项目都是ESN公司公开出来的,从官网上看这个公司是在卖一个名叫“Planet”的real-time web框架,这两个项目是他们Planet的中的组件,稳定性应该是可靠的,ps:看看版本号就知道了:umysql是2.1版,umemcache是1.2版。
  • 问题主要在于是提供的接口十分简单,与现有的库(python-memcache和mysqldb)的接口不一样,与django之类的框架结合时,需要自己搞定这些问题;没有文档,基本都是靠doc(***)和猜测来获得使用方法,又因为是纯c的实现(安装后,在dist-packages中是一个单独的*.so文件),”源码是最好的文档“也行不通。不过我想,这么有前途的特性足以让这两个库趁着coroutine的大潮在未来大红大紫的~

转载地址:http://vjrvo.baihongyu.com/

你可能感兴趣的文章
Windows Time Services 故障的回复
查看>>
iotop命令
查看>>
序列化 对象 JOSN 互转
查看>>
Markdown 使用方法 记录
查看>>
2、Angular JS 学习笔记 - 双向数据绑定和Scope概念
查看>>
CentOS 7.0关闭默认防火墙启用iptables防火墙
查看>>
SpringBoot 中使用自定义的 Servlet, Filter, Listener
查看>>
使用lesscss-maven-plugin,实时监控less文件的编译,只需一步配置
查看>>
.NET 开源开发项目
查看>>
使用fdisk对磁盘进行分区
查看>>
Spring事务基础
查看>>
Druid连接池使用配置
查看>>
linux服务器配置https访问
查看>>
为什么iBatis+Oracle的executeBatch总是返回0?
查看>>
ubuntu13.04下php环境搭建
查看>>
文档补充实现你的AppServer和AppSession[为何要实现自己的]
查看>>
ASCII码中大小写字母转换
查看>>
使用广播接收器
查看>>
单例模式
查看>>
JAVA调用C++ dll库
查看>>