原地址: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)

复制代码

【Firefly API 新版文档】Package dbentrust的更多相关文章

  1. API的文档自动生成——基于CDIF的SOA基本能力

    当前,作为大部分移动app和云服务后台之间的标准连接方式,REST API已经得到了绝大部分开发者的认可和广泛的应用.近年来,在新兴API经济模式逐渐兴起,许多厂商纷纷将自己的后台业务能力作为REST ...

  2. golang学习笔记7 使用beego swagger 实现API自动化文档

    golang学习笔记7 使用beego swagger 实现API自动化文档 API 自动化文档 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/doc ...

  3. 插件式WebApi服务及自动生成Api帮助文档

    上一篇博客中,讲到了将WebApi Host到控制台和IIS,本篇总结一下如何将WebApi的Service以插件的形式进行动态部署,并设置Hoster的首页显示Api帮助文档,当然,也包括动态部署进 ...

  4. api帮助文档的制作

    在java开发中,往往需要用到别人写的类或是自己写的类被别人拿去用. 而使用类的过程中,类中的方法对使用者而言并不完全透明,这个时候帮助文档可以让我们清楚的了解这个类中的方法该如何调用. 下面简述一下 ...

  5. 给自己的java程序生成API帮助文档

    一.问题发现: 课本上提到"要学会给自己编写的程序生成API帮助文档",但又没有说明具体的操作步骤. 二.分析: API帮助文档有什么用?这么理解吧:如果想告诉别人你的类如何使用, ...

  6. Swagger解决你手写API接口文档的痛

    首先,老规矩,我们在接触新事物的时候, 要对之前学习和了解过的东西做一个总结. 01 痛     苦 不做.不行 之前,前后端分离的系统由前端和后端不同的编写,我们苦逼的后端工程师会把自己已经写完的A ...

  7. spring boot使用swagger生成api接口文档

    前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...

  8. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  9. CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)

    继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...

随机推荐

  1. JavaScript设计模式(一)

    使用JavaScript框架和库过程中, 我遇到过很多感觉上'奇形怪状'的代码. 大多数情况下, 按照惯例编写代码也能够写出很多出色的功能. 但是如果不从根本上理解它们实现的方法, 就没办法完全充分发 ...

  2. C#当中的泛型和java中的对比

    1.C#中的泛型 先写一个Demo: namespace generic {         public class Program         {                 static ...

  3. php上传文件大小限制

    和你的配置文件有关.改一下PHP配置文件php.ini给你总结下相关配置,自己去改吧 1.php.ini:upload_max_filesize 所上传的文件的最大大小.默认值2M. 2.php.in ...

  4. 12天学好C语言——记录我的C语言学习之路(Day 2)

    12天学好C语言--记录我的C语言学习之路 Day 2: 我建议大家每一天学习之前都仅凭记忆去敲前一天敲过的最后一个程序,或者敲前一天你认为最难最长的一个程序,如果一晚上的睡眠之后不看书还能敲的出来, ...

  5. 轮子来袭 vJine.Core Orm 之 02_代码生成

    1.下载并安装动软代码生成器: 2.下载vJine.Core.Orm模板: 3.解压模本文件并复制到如下的动软代码生成器模板目录: 4.打开动软代码生成器会看到模板已识别加载: 5.选择模板代码批量生 ...

  6. Go与GUI——GO语言的图形界面Walk

    GO没有原生的界面库,所以不能直接用来写GUI界面.但最近互联网上已经涌现出不少成熟.好用的第三方界面库.使用它们,就同样可以写出同C#.C++的界面.而且效率还更胜一筹. 关于Walk界面库(官方介 ...

  7. CSS3的几个标签速记3

    transition:CSS3过渡     css3里很好的一个标签,可以非常方便的完成需要很多JS才能完成的动态效果 例语法:transition:width 2S,height 2S,transf ...

  8. Java实战之02Hibernate-06处理并发

    十三.处理并发 1.事务的隔离级别 不考虑隔离级别出现的问题: 脏读:一个线程中的事务读到了另外一个线程中未提交的数据. 不可重复读:一个线程中的事务读到了另外一个线程中提交的update(更新)的数 ...

  9. 学习笔记---C++虚函数,纯虚函数

    1 .虚函数 假设people是man的父类,people类和man类都定义了实函数walk() people* p = new man(); p->walk(); 这里P执行的是people类 ...

  10. Android SDK下载技巧

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/android-sdk-download-tips/ 说明 想必在国内的你,是不是经常在下载Android S ...