OORedis 是一个 Redis 的 Python 库,它基于 redis-py ,具有以下三个主要功能:
- 以 Key 对象为单位操作 Redis 的数据结构
- 提供一组 Pythonic 的 API
- 提供方便的类型转换机制
>>> from ooredis import * >>> connect() >>> >>> project = Dict('project-info') >>> project['name'] = 'OORedis' >>> project['description'] = 'A Python-to-Redis mapper' >>> project['language'] = 'Python' >>> project.items() [('name', 'OORedis'), ('description', 'A Python-to-Redis mapper'), ('language', 'Python')] >>> >>> book_list = Deque('my-book-list') >>> book_list.append('SICP') >>> book_list.append('The Joy of Clojure') >>> book_list.append('Real World Haskell') >>> list(book_list) ['SICP', 'The Joy of Clojure', 'Real World Haskell'] >>> book_list.pop() 'Real World Haskell' >>> >>> my_friend = Set('my-friend') >>> my_friend.add('peter') >>> my_friend.add('jack') >>> my_friend.add('mary') >>> your_friend = set(['peter', 'bob', 'yui']) >>> my_friend ^ your_friend set(['yui', 'bob', 'mary', 'jack']) >>> my_friend & your_friend set(['peter']) >>> my_friend Set Key 'my-friend': set(['peter', 'mary', 'jack']) >>> my_friend &= your_friend >>> my_friend Set Key 'my-friend': set(['peter']) >>> >>> price = SortedSet('fruit-price') >>> price['apple'] = 6.5 >>> price['banana'] = 3.2 >>> price['cherry'] = 4 >>> price Sortedset Key 'fruit-price': [{'score': 3.2, 'value': 'banana'}, {'score': 4.0, 'value': 'cherry'}, {'score': 6.5, 'value': 'apple'}] >>> for p in price: ... print(p) ... {'score': 3.2, 'value': 'banana'} {'score': 4.0, 'value': 'cherry'} {'score': 6.5, 'value': 'apple'} >>> for p in reversed(price): ... print(p) ... {'score': 6.5, 'value': 'apple'} {'score': 4.0, 'value': 'cherry'} {'score': 3.2, 'value': 'banana'}
更多代码示例和具体用法,请参考在线文档: http://ooredis.readthedocs.org/
注意:测试将清空 Redis 的 0 号数据库,请谨慎操作。
$ git clone git://github.com/huangz1990/ooredis.git Cloning into ooredis... remote: Counting objects: 112, done. remote: Compressing objects: 100% (81/81), done. remote: Total 112 (delta 38), reused 102 (delta 28) Receiving objects: 100% (112/112), 68.03 KiB | 44 KiB/s, done. Resolving deltas: 100% (38/38), done. $ cd ooredis/ $ nosetests ................................................................................................................................................................................................................................................................................................................................. ---------------------------------------------------------------------- Ran 321 tests in 5.803s OK
因为以下一些已知问题,本软件仍处于试验期当中,请不要在大数据量或者生产环境使用本软件:
- 带有全局变量
- 少数几个方法实现带有竞争条件
- 有一些操作,比如
__iter__
,需要一次性取出数据库中的所有元素,另外,有部分操作的实现效率并不是最优的。
以上问题将会在以后的版本中逐渐改进。
本软件由 huangz 编写, 你可以在免费且自由的情况下,下载、使用、修改本软件,如果你需要其他许可, 请使用以下方式与我取得联系:
twitter: @huangz1990
gmail: huangz1990