zoukankan      html  css  js  c++  java
  • 【Firefly API 新版文档】Package dbentrust

    原地址:http://blog.csdn.net/uxqclm/article/details/11969653

    该包下面主要是数据库的处理与memcached存储。里面封装了,从memcached数据到python对象的映射。可以以操纵python对象的方式进行memcached中存储的数据的操作,只要在不同的进程中实例化相同名称的memobject对象,就能保证对象中的数据是一致的。还包含了将这个对象中的数据同步到数据库的出来方法。这里不需去写一句sql语句。

    class DBPool
    数据库连接池

    InitPool
    初始化数据库连接池
    1. type method
    2. //cwd firefly/dbentrust/dbpool.py
    3. Prams initPool(**kw)
    复制代码
    **kw,关键字参数,是个字典,key:value分别对应为 config.json 这个配置文件中填写的对应值:
    1. "host":"localhost",
    2. "user":"root",
    3. "passwd":"111",
    4. "port":3306,
    5. "db":"test",
    6. "charset":"utf8"
    复制代码
    用于初始化数据库连接池

    connection
    获取一条数据库连接
    1. type method 
    2. //cwd firefly/dbentrust/dbpool.py
    3. Params connecton(self)
    复制代码
    class Memclient
    memcached 客户端连接类,通过加上前缀的方式类分配不同的命名空间。

    connect
    连接memcached服务
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params connect(urls,hostname)
    复制代码
    Urls,连接memcached服务所需的ip和端口号
    Hostname,所连接的主机名
    上面两个参数的值为config.json 这个配置文件中填写的对应值:
    1. "urls":["127.0.0.1:11211"],
    2. "hostname":"anheisg"
    复制代码
    用于连接memcached服务


    produceKey(keyname)
    重新生成key
    1. [b]type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params produceKey(self,keyname)[/b]
    复制代码
    Key,存取值时的key名,根据key生成统一规则的新key名
    Key必须为str型,否则返回 type error

    get
    获取key对应的值
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Prams get(key)
    复制代码
    get_multi
    一次获取多个key的值,比for循环调用get方法快        
    @param key: list(str) key的列表
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params get_multi(keys)
    复制代码
    keys为list型,keys = [key1,key2,...keyn],key1,key2为str型

    set
    将keyname的值设置成value
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params set(keyname, value)
    复制代码
    成功返回True,失败返回0

    set_multi
    设置多个键值对
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params set_multi(mapping)
    复制代码
    mapping 为dic型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0

    incr
    自增
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params incr(key, delta)
    复制代码
    key,key名
    delta,增加的值
    给key的value值增加 delta,返回增加后的value值

    delete
    删除指定key
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params delete(key)
    复制代码
    key,key名
    将key及对应的value值删除,返回值为1

    delete_multi
    一次删除多个key
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params delete_multi(keys)
    复制代码
    keys为list型,keys = [key1,key2,...keyn],key1,key2为str型

    flush_all
    清空所有数据,慎用
    1. type method
    2. //cwd firefly/dbentrust/memclient.py
    3. Params flush_all(self)
    复制代码
    class MemObject
    memcached 数据到python对象的映射类。通过继承这个类来实现memcached数据格式的自定义。

    produceKey
    重新生成key
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params produceKey(self,keyname)
    复制代码
    Key,存取值时的key名,根据key生成统一规则的新key名
    Key必须为str型,否则返回 type error

    locked
    检测对象是否被锁定
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params lock(self)
    复制代码
    返回对象的状态,1表示对象被锁定无法进行修改,0表示可以修改

    lock
    锁定对象
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params lock(self)
    复制代码
    将对象的锁定状态更改为1

    release
    释放锁
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params release(self)
    复制代码
    将对象的锁定状态更改为1

    get
    获取key对应的值
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params get(key)
    复制代码
    get_multi
    一次获取多个key的值,比for循环调用get方法快
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params get_multi(keys)
    复制代码
    keys为list型,keys = [key1,key2,...keyn],key1,key2为str型

    update
    将key的值设置成values
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params update(key, values)
    复制代码
    update_multi
    同时修改多个键值对的值
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params update_multi(mapping)
    复制代码
    mapping 为dict型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0或False

    mdelete
    删除本类包含的所有的数据
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params mdelete(self)
    复制代码
    incr
    自增
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params incr(key, delta)
    复制代码
    key,key名
    delta,增加的值
    给key的value值增加 delta,返回增加后的value值

    insert
    插入本类包含的所有的数据
    1. type method
    2. //cwd firefly/dbentrust/memobject.py
    3. Params insert()
    复制代码
    class Mmode
    数据库到memcached直接的映射类。可以实现延迟异步的去修改数据库中的数据,减轻数据库压力。并有自定义的过期时间,过期后memcached中的数据会被自动的清理掉。这里对过期的定义的,这个对象被访问中间的间隔时间。这个类通过继承MemObject实现

    update
    将key的值设置成values
    1. type method
    2. //cwd firefly/dbentrust/mmode.py
    3. Params update(key, values)
    复制代码
    update_multi
    同时修改多个键值对的值
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params update_multi(mapping)
    复制代码
    mapping 为dict型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0或False

    get
    获取key对应的值
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params get(self, key)
    复制代码
    get_multi
    一次获取多个key的值,比for循环调用get方法快
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params get_multi(self, keys)
    复制代码
    keys为list型,keys = [key1,key2,...keyn],key1,key2为str型

    delete
    删除对象,这里只是将数据的状态修改为已经删除的状态
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params delete(self)
    复制代码
    mdelete
    清理对象,先将数据同步到数据库,然后真正的清理掉memcached里的本条数据
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params mdelete(self)
    复制代码
    IsEffective
    检查对象是否有效,有效返回True,无效返回False
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params IsEffective(self)
    复制代码
    syncDB
    将数据同步到数据库
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params syncDB(self)
    复制代码
    checkSync
    将数据同步到数据库并检测数据是否超时,超时则从memcached中删除数据
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params checkSync(self,timeout=TIMEOUT)
    复制代码
    class MFKMode
    外键管理

    class MAdmin                        
    mmode管理器,可以根据主键获取一个mmode的实例。一个MAdmin管理器对应到的是数据库的某张表,继承与MemObject类。它的实例化方式如下
    1. ma = MAdmin("tb_user",'id',fk = 'group',incrkey='id')
    2. user2 = ma.getObj(2)
    3. user2.update('name','test')
    复制代码
    表示对应的是数据库tb_user这张表,通过ma.getObj(2),可以获取id为2的这条记录的对应的mmode对象。user2.update('name','test')修改这条记录对应的name字段为‘test’。

    insert
    将所有数据写入到memcached。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params insert(self)
    复制代码
    load
    将本管理器对应的数据库中的表的所有信息,写入到memcached中
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params load(self)
    复制代码
    madmininfo
    获取Madmin的相关信息
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params madmininfo(self)
    复制代码
    mfilter
    查找符合的对象(效率低下,不推荐使用)
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params mfilter(self,kw)
    复制代码
    getAllPkByFk
    根据外键获取主键列表
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params getAllPkByFk(self,fk)
    复制代码
    fk,外键的值
    根据外键的值查找本表中所有符合条件的数据,返回这些数据的主键的值的列表。

    getObj
    根据主键获取对应的记录的mmode对象。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params getObj(pk)
    复制代码
    pk,主键的值,返回该主键对应的数据的mmode对象实例,类型为instance

    getObjData
    根据主键获取对应的记录的mmode对象的字段数据。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params getObjData(self,pk)
    复制代码
    pk,主键的值,返回该主键对应的数据,类型为dict

    getObjList
    根据主键列表获取对应的记录的mmode对象的列表。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params getObjList(self,pklist)
    复制代码
    Pklist主键列表,根据列表里面的主键,返回由主键对应的数据的mmode对象实例的列表([instance,instance,instance])

    deleteMode
    根据主键删除对应的mmode信息。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params deleteMode(self,pk)
    复制代码
    pk,主键的值
    这里只是将数据的状态修改为已经删除的状态


    checkAll
    检测同步管理的对象信息到数据库。并处理过期的对象
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. check()
    复制代码
    deleteAllFk
    删除所有的外键
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params deleteAllFk(self)
    复制代码
    真正将数据从memcached中删除

    new
    创建一个新的对象,对应的是在数据库中创建新的记录,但不是同步实时的。需要在checkAll执行后才能真正的同步到数据库中。
    1. type method
    2. //cwd firefly/dbentrust/ mmode.py
    3. Params new(self,data)
    复制代码
    class MadminManager
    Madmin对象的管理器,实际上就是对整个库中的表的记录进行管理,但这个表对应的Madmin必须在这里被注册。

    registe
    注册Madmin管理器。
    1. type method 
    2. //cwd firefly/dbentrust/ madminanager.py
    3. Params registe(self,admin)
    复制代码
    admin,数据模型对象实例
    将数据对象Madmin的实例添加到Madmin单例管理器MadminManager中

    dropAdmin
    取消对madmin对象的管理
    1. type method 
    2. //cwd firefly/dbentrust/ madminanager.py
    3. Params dropAdmin(self,adminname)
    复制代码
    adminname,数据模型对象实例的名字
    根据实例adminname,将数据对象Madmin的实例从Madmin单例管理器MadminManager中删除

    getAdmin
    根据表名称获取注册过的madmin对象。
    1. type method 
    2. //cwd firefly/dbentrust/ madminanager.py
    3. Params getAdmin(self,adminname)
    复制代码
    adminname,数据模型对象实例的名字
    根据实例adminname,从Madmin单例管理器MadminManager中获取数据对象Madmin的实例

    checkAdmins
    同步MadminManager中所有的注册的了madmin对应的记录到数据库中,并处理过期的对象
    1. type method 
    2. //cwd firefly/dbentrust/ madminanager.py
    3. Params checkAdmins(self)
    复制代码
  • 相关阅读:
    小程序修改数组中对象的某个值或者修改对象值
    小程序实现textarea随输入的文字行数变化高度自动增加
    jquery获取data-xxx自定义属性的值遇到的问题
    koa2使用注意点总结
    koa项目用mongoose与mongodb交互,始终报错FormModel is not defined
    动态添加的html元素绑定事件的方法
    wordpress主题升级之后返回到原来版本主题的方法
    mongodb可视化工具连接报错
    koa2实现拦截器进行登录前session校验
    vue路由跳转报错解决
  • 原文地址:https://www.cnblogs.com/123ing/p/3902733.html
Copyright © 2011-2022 走看看