SlideShare a Scribd company logo
1 of 45
Download to read offline
OOREDIS
OOREDIS
是什么:
一个Redis的Python库,基于redis-py。

目标:
 1. 以Key对象为单位操作Redis的数据结构
 2. 提供一组Pythonic的API
 3. 提供方便的类型转换机制
OOREDIS
是什么:
一个Redis的Python库,基于redis-py。

目标:
 1. 以Key对象为单位操作Redis的数据结构
 2. 提供一组Pythonic的API
 3. 提供方便的类型转换机制
REDIS
以函数为单位:

Keys: DEL, KEYS, TTL...
Strings: SET, GET, GETSET...
Hashs: HSET, HDEL, HGET...
Lists: LPUSH, RPUSH, LPOP, RPOP...
Set: SADD, SREM, SPOP...
Sorted Sets: ZADD, ZREM...
...
REDIS-PY
以客户端对象为单位:

   >>> from redis import Redis
   >>> r = Redis()
   >>> r.lpush('numbers', 'one')
   1L
   >>> dir(r)
   >>> [..., 'append', 'bgrewriteaof', 'bgsave',       'blpop',
'brpop', 'brpoplpush', 'config_get',          'config_set',
'connection_pool', 'dbsize', 'decr', ...]
OOREDIS
以Key对象为单位:

  根据其作用,Redis的函数在OOREDIS中被归为一个个
Python类。
REDIS函数->OOREDIS类

redis:               Key(ttl, expire, del, ...)
                      / / |  
         Hash    List SortedSet Set             String
           |      |         |          |          |
        HGET    LPUSH ZADD SADD                      SET
        HSET    RPUSH ZRANK SUNION GET
        HLEN    LRANGE ZREM SPOP                     SETNX
          ...    ...       ...        ...        ...
           |      |         |          |          |
ooreids: Dict    List SortedSet Set SingleValue,
                                           Counter
OOREDIS
以Key对象为单位:
  根据其作用,Redis的函数在OOREDIS中被归为一个个
python类。

 每个OOREDIS类以一个Key(或者说,key name,键名)作为
构造函数参数,生成相应的Key对象。
OOREDIS
例子:

 >>> greet = SingleValue('greeting')
 >>> greet.set('hello world')
 >>> greet.get()
 u'hello world'
OOREDIS
例子2:

 >>> project = Dict('ooredis-project')
 >>> project['name'] = 'ooredis'
 >>> project['language'] = 'Python'
 >>> project['author'] = 'huangz'
OOREDIS
是什么:
一个Redis的Python库,基于redis-py。

目标:
 1. 以Key对象为单位操作Redis的数据结构
 2. 提供一组Pythonic的API
  3. 提供方便的类型转换机制
Key
所有Key对象的基类,子类通过继承它以获得以下通用命
令:

 __init__(self,
         name,
         client=None,
         type_case=None)

 name, delete, exists, expire, expireat,
 persist, ttl, sort
Key
例子:
   >>> books = List('my_book_list')
   >>> dir(books)
   ['__abstractmethods__', ..., 'exists', 'expire', 'expireat',
'index', 'lpop', 'lpush', 'name', 'persist', ..., 'ttl']
   >>>
   >>> from ooredis.mix.key import Key
   >>> issubclass(List, Key)
   True
SingleValue
储存单个值的对象:

 set(value, preserve=False, expire=None)
 get()
 getset(value)
SingleValue
例子: 

 >>> phone = SingleValue('china_mobile')
 >>> phone.set(10086)
 >>> phone.get()
 10086
 >>> phone.getset(123123)
 10086
 >>> phone.get()
 123123
Counter
计数器对象,继承自SingleValue:

 incr(increment=1)
 +=

 decr(decrement=1)
 -=

 set, get, getset
Counter
例子:
 >>> counter = Counter('hit_count')
 >>> counter.incr()
 1
 >>> counter.incr(5)
 6
 >>> counter += 10086
 >>> counter.get()
 10092
 >>> counter.decr()
 10091
Dict
字典对象,提供O(1)复杂度的读/写操作:

 __setitem__, __getitem__, __delitem__,
 __iter__, __contains__, __len__

 incr(), decr()
 setdefault(), get()
 items(), keys(), values()
 iteritems(), iterkeys(), itervalues(),
 pop(), popitems(), clear(), update()
Dict
例子:
    >>> project = Dict('ooredis-project')
    >>> project['name'] = 'ooredis'
    >>> project['version'] = 1.0
    >>> project['language'] = 'Python'
    >>>
    >>> project.items()
    [('name', u'ooredis'), ('version', 1.0),
('language', u'Python')]
    >>> 'author' in project
    False
List
列表对象,提供slice,以及双向的push/pop等操作:

 __contains__, __getitem__, __delitem__,
 __setitem__, __iter__, __len__

 lpush, lpop, blpop,
 rpush, rpop, brpop,
 rpoplpush, brpoplpush

 remove, count, index
List
例子:
 >>> books = List('my_book_list')
 >>> books.rpush('on lisp')
 >>> books.rpush('pro python')
 >>> books.lpush('design patterns')
 >>>
 >>> [book.title() for book in books]
 [u'Design Patterns', u'On Lisp', u'Pro Python']
 >>> books.lpop()
 u'design patterns'
Set
集合对象,支持Key对象之间或Key对象和Python集合之间的
对象运算:

 isdisjoint, __le__, __lt__, __ge__, __gt__
 __or__, __ror__, __and__, __rand__,
 __sub__, __rsub__, __xor__, __rxor__

 __len__, __iter__, __contains__
 add, remove, pop, random, move
Set
例子:
 >>> jack = Set('jack_following')
 >>> jack.add('tom'); jack.add('peter')
 >>>
 >>> # Set object & Set object
 >>> jack & jack
 set([u'peter', u'tom'])
 >>>
 >>> # Set object | Python set
 >>> jack | {'tom', 'marry'}
 set(['marry', u'peter', u'tom'])
SortedSet
有序集合,常用于排名或频率统计:

 __len__, __contains__,
 __setitem__, __getitem__, __delitem__,

 remove, rank, score, incr, decr
SortedSet
例子:
   >>> fruit = SortedSet('fruit_price')
   >>> fruit['apple'] = 8.3
   >>> fruit['banana'] = 7.5
   >>> fruit['orange'] = 5
   >>>
   >>> fruit[0]
   {'score': 5.0, 'value': u'orange'}
   >>> list(reversed(fruit))[:2]
   [{'score': 8.3, 'value': u'apple'}, {'score': 7.5, 'value':
u'banana'}]
OOREDIS
是什么:
一个Redis的python库,基于redis-py。

目标:
 1. 以Key对象为单位操作Redis的数据结构
  2. 提供一组Pythonic的API
 3. 提供方便的类型转换机制
REDIS
Redis的数据都是以字符串格式保存的:

 redis> SET PI 3.1415926
 OK
 redis> GET PI
 "3.1415926"
REDIS-PY
每次都手动转型太不低碳了:

 >>> from redis import Redis
 >>> r = Redis()
 >>> r.set('PI', 3.1415926)
 True
 >>> r.get('PI')
 '3.1415926'
 >>> float(r.get('PI'))
 3.1415926
OOREDIS
在ooreids中,你可以通过给Key对象传入TypeCase类来控
制值的转型:

>>> from ooredis.type_case import FloatTypeCase
>>>
>>> f = Dict('floats', type_case=FloatTypeCase)
自带的TypeCase类

ooredis自带了一些常用的TypeCase类:

 GenericTypeCase # 接受int(long), float, 
               #    string, unicode

 IntTypeCase # int(long)
 FloatTypeCase # float
 StringTypeCase # sting, unicode都转化成unicode

 JsonTypeCase # Json
 SerializeTypeCase # Pickle
GenericTypeCase

GenericTypeCase是Key对象的默认type_case值:

>>> from ooredis import *
>>> jack = Dict('jack_profile')
>>> jack['name'] = 'Jack Loz'
>>> jack['age'] = 35
>>> jack
Dict Key 'jack_profile': {'age': 35, 'name': u'Jack Loz'}
IntTypeCase
>>> from ooredis.type_case import IntTypeCase
>>>
>>> nums = Set('nums', type_case=IntTypeCase)
>>> nums.add(10086)
>>> nums.add('2011')
>>> nums
Set Key 'nums': set([2011, 10086])
>>>
>>> nums.add('hello')
ValueError: invalid literal for int() with base 10: 'hello'
FloatTypeCase

>>> from ooredis.type_case import FloatTypeCase
>>>
>>> const = Dict('const',
                     type_case=FloatTypeCase)
>>>
>>> const['pi'] = 3.1415926
>>> const['e'] = 2.71828
>>> const
Dict Key 'const': {'pi': 3.1415926, 'e': 2.71828}
StringTypeCase

>>> from ooredis.type_case import 
                             StringTypeCase
>>> friends = Set('my_friend',
                    type_case=StringTypeCase)
>>> friends.add('jack')
>>> friends.add('marry')
>>> friends.add(unicode('harry'))
>>> friends
Set Key 'my_friend': set([u'marry', u'jack', u'harry'])
JsonTypeCase
>>> from ooredis.type_case import JsonTypeCase
>>> site = SingleValue('site',
                          type_case=JsonTypeCase)
>>> google = {'name': 'google',
                 'type': 'search engine',
                 'url': 'www.google.com'}
>>> site.set(google)
>>> site.get()
{u'url': u'www.google.com', u'type': u'search engine',
u'name': u'google'}
SerializeTypeCase

>>> from ooredis.type_case import 
                            SerializeTypeCase
>>> obj = SingleValue('book',
                    type_case=SerializeTypeCase)
>>> class Book:
...      name = 'Learning Android',
...
>>> obj.set(Book())
>>> book = obj.get()
>>> book.name
'Learning Android'
编写你自己的TypeCase类



TypeCase类的两个静态方法:to_redis和to_python

class NewTypeCase:
   @staticmethod
   def to_redis(value): pass
   # 将值/对象转为Redis能保存的值(字符串,整数,浮点)

 @staticmethod
 def to_python(value): pass
 # 将从Redis取出的字符串值转换回原来的值/对象
FloatTypeCase示例


class FloatTypeCase:
   """ 将python值转换为float类型。 """
   @staticmethod
   def to_redis(value):
      return float(value)

    @staticmethod
    def to_python(value):
       if value == None: # 某些方法会返回None
            return None
        return float(value)
OOREDIS
 需求, 使用, 文档...
需求
Python: 2.7
Redis: 2.2
redis-py: 2.4.9
下载OOREDIS

$ cd /tmp/
$ git clone git://github.com/huangz1990/ooredis.git
Cloning into ooredis...
...
Resolving deltas: 100% (34/34), done.
$ cd ooredis/
$ sudo mv ooredis/ /usr/lib/python2.7/site-packages/
$ python2
Python 2.7.2 (default, Jun 29 2011, 11:17:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ooredis import *
使用OOREDIS

>>> from ooredis import *
>>> dir()
['Counter', 'Dict', 'List', 'Set', 'SingleValue', 'SortedSet',
'__builtins__', '__doc__', '__name__', '__package__',
'connect', 'get_client', 'type_case']
>>>
>>> connect(db=5) # 指定数据库
<redis.client.Redis object at 0xb73db1cc>
>>> ...
文档?!
目前还没有,遇上问题请dir和help.

>>> dir(Set)
['__and__', '__class__', ..., 'random', 'remove', 'ttl']
>>>
>>> help(Set.add)
add(self, element):
    将element加入到集合当中。
   
    如果element已经是集合的成员,不做动作。
    ...
项目地址
  https://github.com/huangz1990/ooredis




      联系方式
twitter: @huangz1990
gmail: huangz1990
豆瓣: http://www.douban.
com/people/i_m_huangz/
EOF

More Related Content

What's hot

Wind.js无障碍调试与排错
Wind.js无障碍调试与排错Wind.js无障碍调试与排错
Wind.js无障碍调试与排错jeffz
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLin Yo-An
 
Python xmlrpc-odoo
Python xmlrpc-odooPython xmlrpc-odoo
Python xmlrpc-odoorobin yang
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇Justin Lin
 
Python learn guide
Python learn guidePython learn guide
Python learn guiderobin yang
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7Justin Lin
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1yiditushe
 
Jscex:案例、阻碍、体会、展望
Jscex:案例、阻碍、体会、展望Jscex:案例、阻碍、体会、展望
Jscex:案例、阻碍、体会、展望jeffz
 
Jscex:案例、经验、阻碍、展望
Jscex:案例、经验、阻碍、展望Jscex:案例、经验、阻碍、展望
Jscex:案例、经验、阻碍、展望jeffz
 
所谓闭包
所谓闭包所谓闭包
所谓闭包youzitang
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题yiditushe
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用勇浩 赖
 
Redis中文入门手册
Redis中文入门手册Redis中文入门手册
Redis中文入门手册www.tujia.com
 
JavaScript现代化排错实践
JavaScript现代化排错实践JavaScript现代化排错实践
JavaScript现代化排错实践jeffz
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniterBo-Yi Wu
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1Sheng-Han Su
 
所谓闭包
所谓闭包所谓闭包
所谓闭包ilovey4
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化qiyutan
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IHung-yu Lin
 

What's hot (19)

Wind.js无障碍调试与排错
Wind.js无障碍调试与排错Wind.js无障碍调试与排错
Wind.js无障碍调试与排错
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHP
 
Python xmlrpc-odoo
Python xmlrpc-odooPython xmlrpc-odoo
Python xmlrpc-odoo
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
 
Python learn guide
Python learn guidePython learn guide
Python learn guide
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1
 
Jscex:案例、阻碍、体会、展望
Jscex:案例、阻碍、体会、展望Jscex:案例、阻碍、体会、展望
Jscex:案例、阻碍、体会、展望
 
Jscex:案例、经验、阻碍、展望
Jscex:案例、经验、阻碍、展望Jscex:案例、经验、阻碍、展望
Jscex:案例、经验、阻碍、展望
 
所谓闭包
所谓闭包所谓闭包
所谓闭包
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
Redis中文入门手册
Redis中文入门手册Redis中文入门手册
Redis中文入门手册
 
JavaScript现代化排错实践
JavaScript现代化排错实践JavaScript现代化排错实践
JavaScript现代化排错实践
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1
 
所谓闭包
所谓闭包所谓闭包
所谓闭包
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化
 
OpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part IOpenWebSchool - 02 - PHP Part I
OpenWebSchool - 02 - PHP Part I
 

Viewers also liked

Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用iammutex
 
Couchdb and me
Couchdb and meCouchdb and me
Couchdb and meiammutex
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaknuthocean
 
Consistency Models in New Generation Databases
Consistency Models in New Generation DatabasesConsistency Models in New Generation Databases
Consistency Models in New Generation Databasesiammutex
 
Consistency in Distributed Systems
Consistency in Distributed SystemsConsistency in Distributed Systems
Consistency in Distributed SystemsShane Johnson
 
8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slide8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slideiammutex
 
SDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modellingSDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modellingKorea Sdec
 
Big Challenges in Data Modeling: NoSQL and Data Modeling
Big Challenges in Data Modeling: NoSQL and Data ModelingBig Challenges in Data Modeling: NoSQL and Data Modeling
Big Challenges in Data Modeling: NoSQL and Data ModelingDATAVERSITY
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Modelsiammutex
 
Boosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and SparkBoosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and SparkDvir Volk
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDBrogerbodamer
 
Coherence and consistency models in multiprocessor architecture
Coherence and consistency models in multiprocessor architectureCoherence and consistency models in multiprocessor architecture
Coherence and consistency models in multiprocessor architectureUniversity of Pisa
 
Consistency in Distributed Systems
Consistency in Distributed SystemsConsistency in Distributed Systems
Consistency in Distributed SystemsDATAVERSITY
 
Cache coherence problem and its solutions
Cache coherence problem and its solutionsCache coherence problem and its solutions
Cache coherence problem and its solutionsMajid Saleem
 
Redis modules 101
Redis modules 101Redis modules 101
Redis modules 101Dvir Volk
 
Cache coherence
Cache coherenceCache coherence
Cache coherenceEmployee
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examplesTerry Cho
 

Viewers also liked (20)

Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
Couchdb and me
Couchdb and meCouchdb and me
Couchdb and me
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in china
 
Consistency Models in New Generation Databases
Consistency Models in New Generation DatabasesConsistency Models in New Generation Databases
Consistency Models in New Generation Databases
 
Consistency in Distributed Systems
Consistency in Distributed SystemsConsistency in Distributed Systems
Consistency in Distributed Systems
 
8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slide8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slide
 
SDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modellingSDEC2011 NoSQL Data modelling
SDEC2011 NoSQL Data modelling
 
Big Challenges in Data Modeling: NoSQL and Data Modeling
Big Challenges in Data Modeling: NoSQL and Data ModelingBig Challenges in Data Modeling: NoSQL and Data Modeling
Big Challenges in Data Modeling: NoSQL and Data Modeling
 
skip list
skip listskip list
skip list
 
Cache coherence
Cache coherenceCache coherence
Cache coherence
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
 
Boosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and SparkBoosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and Spark
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDB
 
Coherence and consistency models in multiprocessor architecture
Coherence and consistency models in multiprocessor architectureCoherence and consistency models in multiprocessor architecture
Coherence and consistency models in multiprocessor architecture
 
Consistency in Distributed Systems
Consistency in Distributed SystemsConsistency in Distributed Systems
Consistency in Distributed Systems
 
Cache coherence problem and its solutions
Cache coherence problem and its solutionsCache coherence problem and its solutions
Cache coherence problem and its solutions
 
Redis modules 101
Redis modules 101Redis modules 101
Redis modules 101
 
Big Data Modeling
Big Data ModelingBig Data Modeling
Big Data Modeling
 
Cache coherence
Cache coherenceCache coherence
Cache coherence
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 

Similar to Ooredis

Android resource-management
Android resource-managementAndroid resource-management
Android resource-managementLucas Xu
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析wavefly
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档yiditushe
 
Redis 内存存储结构分析 -wuzhu--20110418
Redis 内存存储结构分析 -wuzhu--20110418Redis 内存存储结构分析 -wuzhu--20110418
Redis 内存存储结构分析 -wuzhu--20110418tidesq
 
Redis内存存储结构分析
Redis内存存储结构分析Redis内存存储结构分析
Redis内存存储结构分析锐 张
 
Python 入門
Python 入門 Python 入門
Python 入門 Andy Yao
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2luolonghao
 
Strace debug
Strace debugStrace debug
Strace debugluo jing
 
02.python基础
02.python基础02.python基础
02.python基础modou li
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验QLeelulu
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introductionotakustay
 
MongoDB for C# developer
MongoDB for C# developerMongoDB for C# developer
MongoDB for C# developerdianming.song
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试lydiafly
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Jinrong Ye
 

Similar to Ooredis (20)

Android resource-management
Android resource-managementAndroid resource-management
Android resource-management
 
Glider
GliderGlider
Glider
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析
 
Python 温故
Python 温故Python 温故
Python 温故
 
Linq 入门
Linq 入门Linq 入门
Linq 入门
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档
 
Redis 内存存储结构分析 -wuzhu--20110418
Redis 内存存储结构分析 -wuzhu--20110418Redis 内存存储结构分析 -wuzhu--20110418
Redis 内存存储结构分析 -wuzhu--20110418
 
Redis内存存储结构分析
Redis内存存储结构分析Redis内存存储结构分析
Redis内存存储结构分析
 
Python 入門
Python 入門 Python 入門
Python 入門
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2
 
Strace debug
Strace debugStrace debug
Strace debug
 
02.python基础
02.python基础02.python基础
02.python基础
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
 
MongoDB for C# developer
MongoDB for C# developerMongoDB for C# developer
MongoDB for C# developer
 
Optimzing mysql
Optimzing mysqlOptimzing mysql
Optimzing mysql
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
 
Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422Handler socket测试报告 - 20110422
Handler socket测试报告 - 20110422
 

More from iammutex

Scaling Instagram
Scaling InstagramScaling Instagram
Scaling Instagramiammutex
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出iammutex
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redisiammutex
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用iammutex
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告iammutex
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Introduction to couchdb
Introduction to couchdbIntroduction to couchdb
Introduction to couchdbiammutex
 
What every data programmer needs to know about disks
What every data programmer needs to know about disksWhat every data programmer needs to know about disks
What every data programmer needs to know about disksiammutex
 
redis运维之道
redis运维之道redis运维之道
redis运维之道iammutex
 
Realtime hadoopsigmod2011
Realtime hadoopsigmod2011Realtime hadoopsigmod2011
Realtime hadoopsigmod2011iammutex
 
[译]No sql生态系统
[译]No sql生态系统[译]No sql生态系统
[译]No sql生态系统iammutex
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbaseiammutex
 
Redis cluster
Redis clusterRedis cluster
Redis clusteriammutex
 
Redis cluster
Redis clusterRedis cluster
Redis clusteriammutex
 
Hadoop introduction berlin buzzwords 2011
Hadoop introduction   berlin buzzwords 2011Hadoop introduction   berlin buzzwords 2011
Hadoop introduction berlin buzzwords 2011iammutex
 
No sql but even less security
No sql but even less securityNo sql but even less security
No sql but even less securityiammutex
 
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators  10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators iammutex
 
MongoDB开发应用实践
MongoDB开发应用实践MongoDB开发应用实践
MongoDB开发应用实践iammutex
 

More from iammutex (20)

Scaling Instagram
Scaling InstagramScaling Instagram
Scaling Instagram
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redis
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
 
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Introduction to couchdb
Introduction to couchdbIntroduction to couchdb
Introduction to couchdb
 
What every data programmer needs to know about disks
What every data programmer needs to know about disksWhat every data programmer needs to know about disks
What every data programmer needs to know about disks
 
Ooredis
OoredisOoredis
Ooredis
 
redis运维之道
redis运维之道redis运维之道
redis运维之道
 
Realtime hadoopsigmod2011
Realtime hadoopsigmod2011Realtime hadoopsigmod2011
Realtime hadoopsigmod2011
 
[译]No sql生态系统
[译]No sql生态系统[译]No sql生态系统
[译]No sql生态系统
 
Couchdb + Membase = Couchbase
Couchdb + Membase = CouchbaseCouchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
 
Redis cluster
Redis clusterRedis cluster
Redis cluster
 
Redis cluster
Redis clusterRedis cluster
Redis cluster
 
Hadoop introduction berlin buzzwords 2011
Hadoop introduction   berlin buzzwords 2011Hadoop introduction   berlin buzzwords 2011
Hadoop introduction berlin buzzwords 2011
 
No sql but even less security
No sql but even less securityNo sql but even less security
No sql but even less security
 
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators  10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators
 
MongoDB开发应用实践
MongoDB开发应用实践MongoDB开发应用实践
MongoDB开发应用实践
 

Ooredis