|
package dbentrust
该包下面主要是数据库的处理与memcached存储。里面封装了,从memcached数据到python对象的映射。可以以操纵python对象的方式进行memcached中存储的数据的操作,只要在不同的进程中实例化相同名称的memobject对象,就能保证对象中的数据是一致的。还包含了将这个对象中的数据同步到数据库的出来方法。这里不需去写一句sql语句。
class DBPool
数据库连接池
InitPool
初始化数据库连接池- type method
- //cwd firefly/dbentrust/dbpool.py
- Prams initPool(**kw)
复制代码 **kw,关键字参数,是个字典,key:value分别对应为 config.json 这个配置文件中填写的对应值:- "host":"localhost",
- "user":"root",
- "passwd":"111",
- "port":3306,
- "db":"test",
- "charset":"utf8"
复制代码 用于初始化数据库连接池
connection
获取一条数据库连接- type method
- //cwd firefly/dbentrust/dbpool.py
- Params connecton(self)
复制代码 class Memclient
memcached 客户端连接类,通过加上前缀的方式类分配不同的命名空间。
connect
连接memcached服务- type method
- //cwd firefly/dbentrust/memclient.py
- Params connect(urls,hostname)
复制代码 Urls,连接memcached服务所需的ip和端口号
Hostname,所连接的主机名
上面两个参数的值为config.json 这个配置文件中填写的对应值:- "urls":["127.0.0.1:11211"],
- "hostname":"anheisg"
复制代码 用于连接memcached服务
produceKey(keyname)
重新生成key- [b]type method
- //cwd firefly/dbentrust/memclient.py
- Params produceKey(self,keyname)[/b]
复制代码 Key,存取值时的key名,根据key生成统一规则的新key名
Key必须为str型,否则返回 type error
get
获取key对应的值- type method
- //cwd firefly/dbentrust/memclient.py
- Prams get(key)
复制代码 get_multi
一次获取多个key的值,比for循环调用get方法快
@param key: list(str) key的列表- type method
- //cwd firefly/dbentrust/memclient.py
- Params get_multi(keys)
复制代码 keys为list型,keys = [key1,key2,...keyn],key1,key2为str型
set
将keyname的值设置成value- type method
- //cwd firefly/dbentrust/memclient.py
- Params set(keyname, value)
复制代码 成功返回True,失败返回0
set_multi
设置多个键值对- type method
- //cwd firefly/dbentrust/memclient.py
- Params set_multi(mapping)
复制代码 mapping 为dic型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0
incr
自增- type method
- //cwd firefly/dbentrust/memclient.py
- Params incr(key, delta)
复制代码 key,key名
delta,增加的值
给key的value值增加 delta,返回增加后的value值
delete
删除指定key- type method
- //cwd firefly/dbentrust/memclient.py
- Params delete(key)
复制代码 key,key名
将key及对应的value值删除,返回值为1
delete_multi
一次删除多个key- type method
- //cwd firefly/dbentrust/memclient.py
- Params delete_multi(keys)
复制代码 keys为list型,keys = [key1,key2,...keyn],key1,key2为str型
flush_all
清空所有数据,慎用- type method
- //cwd firefly/dbentrust/memclient.py
- Params flush_all(self)
复制代码 class MemObject
memcached 数据到python对象的映射类。通过继承这个类来实现memcached数据格式的自定义。
produceKey
重新生成key- type method
- //cwd firefly/dbentrust/memobject.py
- Params produceKey(self,keyname)
复制代码 Key,存取值时的key名,根据key生成统一规则的新key名
Key必须为str型,否则返回 type error
locked
检测对象是否被锁定- type method
- //cwd firefly/dbentrust/memobject.py
- Params lock(self)
复制代码 返回对象的状态,1表示对象被锁定无法进行修改,0表示可以修改
lock
锁定对象- type method
- //cwd firefly/dbentrust/memobject.py
- Params lock(self)
复制代码 将对象的锁定状态更改为1
release
释放锁- type method
- //cwd firefly/dbentrust/memobject.py
- Params release(self)
复制代码 将对象的锁定状态更改为1
get
获取key对应的值- type method
- //cwd firefly/dbentrust/memobject.py
- Params get(key)
复制代码 get_multi
一次获取多个key的值,比for循环调用get方法快- type method
- //cwd firefly/dbentrust/memobject.py
- Params get_multi(keys)
复制代码 keys为list型,keys = [key1,key2,...keyn],key1,key2为str型
update
将key的值设置成values- type method
- //cwd firefly/dbentrust/memobject.py
- Params update(key, values)
复制代码 update_multi
同时修改多个键值对的值- type method
- //cwd firefly/dbentrust/memobject.py
- Params update_multi(mapping)
复制代码 mapping 为dict型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0或False
mdelete
删除本类包含的所有的数据- type method
- //cwd firefly/dbentrust/memobject.py
- Params mdelete(self)
复制代码 incr
自增- type method
- //cwd firefly/dbentrust/memobject.py
- Params incr(key, delta)
复制代码 key,key名
delta,增加的值
给key的value值增加 delta,返回增加后的value值
insert
插入本类包含的所有的数据- type method
- //cwd firefly/dbentrust/memobject.py
- Params insert()
复制代码 class Mmode
数据库到memcached直接的映射类。可以实现延迟异步的去修改数据库中的数据,减轻数据库压力。并有自定义的过期时间,过期后memcached中的数据会被自动的清理掉。这里对过期的定义的,这个对象被访问中间的间隔时间。这个类通过继承MemObject实现
update
将key的值设置成values- type method
- //cwd firefly/dbentrust/mmode.py
- Params update(key, values)
复制代码 update_multi
同时修改多个键值对的值- type method
- //cwd firefly/dbentrust/ mmode.py
- Params update_multi(mapping)
复制代码 mapping 为dict型,mapping = {key1:balue1,key2:value2},成功返回True,失败返回0或False
get
获取key对应的值- type method
- //cwd firefly/dbentrust/ mmode.py
- Params get(self, key)
复制代码 get_multi
一次获取多个key的值,比for循环调用get方法快- type method
- //cwd firefly/dbentrust/ mmode.py
- Params get_multi(self, keys)
复制代码 keys为list型,keys = [key1,key2,...keyn],key1,key2为str型
delete
删除对象,这里只是将数据的状态修改为已经删除的状态- type method
- //cwd firefly/dbentrust/ mmode.py
- Params delete(self)
复制代码 mdelete
清理对象,先将数据同步到数据库,然后真正的清理掉memcached里的本条数据- type method
- //cwd firefly/dbentrust/ mmode.py
- Params mdelete(self)
复制代码 IsEffective
检查对象是否有效,有效返回True,无效返回False- type method
- //cwd firefly/dbentrust/ mmode.py
- Params IsEffective(self)
复制代码 syncDB
将数据同步到数据库- type method
- //cwd firefly/dbentrust/ mmode.py
- Params syncDB(self)
复制代码 checkSync
将数据同步到数据库并检测数据是否超时,超时则从memcached中删除数据- type method
- //cwd firefly/dbentrust/ mmode.py
- Params checkSync(self,timeout=TIMEOUT)
复制代码 class MFKMode
外键管理
class MAdmin
mmode管理器,可以根据主键获取一个mmode的实例。一个MAdmin管理器对应到的是数据库的某张表,继承与MemObject类。它的实例化方式如下- ma = MAdmin("tb_user",'id',fk = 'group',incrkey='id')
- user2 = ma.getObj(2)
- user2.update('name','test')
复制代码 表示对应的是数据库tb_user这张表,通过ma.getObj(2),可以获取id为2的这条记录的对应的mmode对象。user2.update('name','test')修改这条记录对应的name字段为‘test’。
insert
将所有数据写入到memcached。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params insert(self)
复制代码 load
将本管理器对应的数据库中的表的所有信息,写入到memcached中- type method
- //cwd firefly/dbentrust/ mmode.py
- Params load(self)
复制代码 madmininfo
获取Madmin的相关信息- type method
- //cwd firefly/dbentrust/ mmode.py
- Params madmininfo(self)
复制代码 mfilter
查找符合的对象(效率低下,不推荐使用)- type method
- //cwd firefly/dbentrust/ mmode.py
- Params mfilter(self,kw)
复制代码 getAllPkByFk
根据外键获取主键列表- type method
- //cwd firefly/dbentrust/ mmode.py
- Params getAllPkByFk(self,fk)
复制代码 fk,外键的值
根据外键的值查找本表中所有符合条件的数据,返回这些数据的主键的值的列表。
getObj
根据主键获取对应的记录的mmode对象。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params getObj(pk)
复制代码 pk,主键的值,返回该主键对应的数据的mmode对象实例,类型为instance
getObjData
根据主键获取对应的记录的mmode对象的字段数据。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params getObjData(self,pk)
复制代码 pk,主键的值,返回该主键对应的数据,类型为dict
getObjList
根据主键列表获取对应的记录的mmode对象的列表。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params getObjList(self,pklist)
复制代码 Pklist主键列表,根据列表里面的主键,返回由主键对应的数据的mmode对象实例的列表([instance,instance,instance])
deleteMode
根据主键删除对应的mmode信息。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params deleteMode(self,pk)
复制代码 pk,主键的值
这里只是将数据的状态修改为已经删除的状态
checkAll
检测同步管理的对象信息到数据库。并处理过期的对象- type method
- //cwd firefly/dbentrust/ mmode.py
- check()
复制代码 deleteAllFk
删除所有的外键- type method
- //cwd firefly/dbentrust/ mmode.py
- Params deleteAllFk(self)
复制代码 真正将数据从memcached中删除
new
创建一个新的对象,对应的是在数据库中创建新的记录,但不是同步实时的。需要在checkAll执行后才能真正的同步到数据库中。- type method
- //cwd firefly/dbentrust/ mmode.py
- Params new(self,data)
复制代码 class MadminManager
Madmin对象的管理器,实际上就是对整个库中的表的记录进行管理,但这个表对应的Madmin必须在这里被注册。
registe
注册Madmin管理器。- type method
- //cwd firefly/dbentrust/ madminanager.py
- Params registe(self,admin)
复制代码 admin,数据模型对象实例
将数据对象Madmin的实例添加到Madmin单例管理器MadminManager中
dropAdmin
取消对madmin对象的管理- type method
- //cwd firefly/dbentrust/ madminanager.py
- Params dropAdmin(self,adminname)
复制代码 adminname,数据模型对象实例的名字
根据实例adminname,将数据对象Madmin的实例从Madmin单例管理器MadminManager中删除
getAdmin
根据表名称获取注册过的madmin对象。- type method
- //cwd firefly/dbentrust/ madminanager.py
- Params getAdmin(self,adminname)
复制代码 adminname,数据模型对象实例的名字
根据实例adminname,从Madmin单例管理器MadminManager中获取数据对象Madmin的实例
checkAdmins
同步MadminManager中所有的注册的了madmin对应的记录到数据库中,并处理过期的对象- type method
- //cwd firefly/dbentrust/ madminanager.py
- Params checkAdmins(self)
复制代码
|
|