用于磁盘上密钥/值数据库电梯的python客户端

py-elevator的Python项目详细描述


====
py elevator
===


*py elevator*是"elevator"的python客户机<;http://github.com/oleiade/elevator>;```,一个用python编写并基于leveldb的键值存储,允许在磁盘上进行高性能的批量读/写。

允许异步,对多级数据库后端的多线程和/或远程访问。

图片::http://api.flattr.com/button/flattr badge large.png
:目标:https://flattr.com/submit/auto?用户id=oleiade&url=http://github.com/oleiade/py elevator&title=py elevator&;language=&;tags=github&;分类=软件




==========




================>
-leveldb
-pyzmq(用zmq-3.x造的)
-plyvel



deb.oleiade.com"debian"Debian知识库公开了``libzmq3``````libzmq3开发`````````liblibleveldb1````````````liblibleveldb1`````````````libzmqqq和``libleveldb1 dev``包,以便依赖关系管理。只需将以下行添加到`/etc/apt/sources.list`:

…代码块::bash

deb http://deb.oleiade.com/debian oneiric main




`有关服务器使用和实现的详细信息的文档代码块::python

>;>;来自pyelevator import elevator

e.listdb()
['default',]


>创建一个数据库;e.create db('testdb')
>>>gt;e.listdb()
>['default','testdb',]

>
>>并将您的客户端绑定到新的数据库;e.connect('testdb')

>
>>
>>>
>>>>>>默认值;e.connect('testdb')

>请注意,您无法连接到一个还不存在的数据库,但却还不存在的数据库;请注意,您无法连接到一个还不存在的数据库,而且还不存在的数据库还不存在的数据库。请注意,br/>>;>;e.connect('dbthatdoesntexist')
数据库错误:"数据库不存在"

请注意,它的所有文件
也将被删除。
>;>e.repairdb()
>;>e.dropdb('testdb')


通过使用其路径创建它。
>;>e.createDB('/path/to/my/existing/levelDB')
>;>e.listdb()
['default','/path/to/my/existing/levelDB',]



batch=e.writebatch()



与数据库交互:
----

…代码块::python

>;>;来自pyelevator import elevator
>;>;e=elevator();n.b:连接到"默认值"

>;>;e.put('abc','123')
>;>;e.put('easy as','do re mi')
>;>;e.get('abc')
'123'
>;>;e.mget(['abc','easy as','you andme'])
['123','do re mi',none]
>;>e.delete('abc')
>;>x范围内的i(10):
…E.Put(str(i), str(i))

# Range supports key_from, key_to params
>>> E.Range('1', '9')
[['1','1'],
['2','2'],
['3', '3'],
['4', '4'],
['5', '5'],
['6', '6'],
['7', '7'],
['8', '8'],
['9', '9'],
]

# Or key_from, limit params
>>> e.切片('1',2)
[['1','1'],
['2','2'],
]

>;使用elevator('testdb')作为e:
>;…e.get('1')
>;
'1'

通过writebatch client module类使用它。
它有三个基于leveldb的put、delete、write的基本方法。

。代码块::python

>;>;>;batch=writebatch()
>;>;batch=writebatch('testdb')

>;>;batch.put('a','a')
>;>;batch.put('b','b')
>;>;batch.put('c','c')
>;>;batch.delete('c')
>;>;batch.write()

>;>;e=elevatitor()
>;>e.get('a')
'a'
>;>e.get('b')
'b'
>;>e.get('c')
keyrerror:"找不到密钥"

stdb')作为批:
>;…batch.put('abc','123')
>;…batch.put('or simple as…','do re mi')
>;




*代码简洁明了,如果您需要有关其用法的更多详细信息,请随时深入了解。*

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Kafka producer大量内存使用(泄漏?)   java NullPointerException。。。正在插入数据但无法检索数据[Mysql DB]   java spring+jpa+hibernate=没有可用于当前线程的实际事务的EntityManager无法可靠地处理“persist”调用   getelementbyid在没有ID的情况下如何在java中使用GetElementsById   java有没有一种使用WatchService强制轮询的方法?   java将值从jframe传递给另一个jframe并使用它   Java/Groovy中带重试的反应式事件处理   具有两个包装器元素的java Jackson XML ArrayList输出   java总是在范围内使用不同的随机元素   取消选择java下拉列表值   多线程如何在Java中为对象的不同成员拥有不同的同步块   java如何使用多线程从文本文件中读取输入   java Spring启动附加崩溃命令   java使用公共或单独的actionPerfomed方法有什么区别   java用Spring3.0中的SpEL替换JSP中的EL   java作为windows服务运行应用程序时无法访问共享文件夹   java xml 1.1规范中的“解析数据”是什么意思?   以编程方式设置JComboBox索引时java触发ItemListener   java Android WebView:只加载HTML,不加载JS或CSS(在某些设备中)   Java:计算do/while循环的数量