1、dbentrust说明 该模块主要是对数据库与memcached存储的处理。里面封装了从memcached数据到python对象的映射。可以以操纵python对象的方式进行memcached中存储的数据的操作,只要在不同的进程中实例化相同名称的memobject对象,就能保证对象中的数据是一致的。还包含了将这个对象中的数据同步到数据库的处理方法。 2、结构解析 <ignore_js_op> MemObject类规定了数据的格式,所有的数据都存储在memcached中,为了区分不同的数据,每个数据都要有自己的命名规则。Mmode是数据库到memcached直接的映射类,在memcached中代表数据库里面的一条数据,通过继承MemObject类来实现MFKMode类在memcached中代表数据对应的外键MAdmin类是mmode管理器,可以根据主键获取一个mmode的实例,在memcached中代表数据库里面的一张表MadminManager类是Madmin对象的管理器,实际上就是对整个库中的表的记录进行管理,但这个表对应的Madmin必须在这里被注册。 3、使用示例 1)将数据库中的表读取出来存储到memcached中 <ignore_js_op> 第10行,从firefly中导入MAdmin 第12行,实例化MAdmin,即从数据库中读取tb_register表中的信息,key为第二个参数,即 username,value为对应的信息 第13行,将数据写入到memcached中 2)从memcached中读取需要的数据进行操作 <ignore_js_op> 第13行,在MAdmin管理器(memcached中存储的tb_character_matrix表的数据)中取出id为characterId的数据对象Mmode(matrixMmode) 第14行,要修改的数据 第15行,将数据对象(matrixMmode)中key为’eye’的value值改为-1 3)MAdmin的管理器MadminManager的使用 <ignore_js_op> 第8行,从firefly中导入MadminManager 第13行,将数据对象Madmin的实例(tb_matrix_amin)添加到Madmin单例管理器MadminManager中,一般用于服务器开启时 第14行,同步MadminManager中所有的注册的了madmin对应的记录到数据库中,并处理过期的对象,一般用于服务器关闭时(注:只同步之前注册到MadminManager中的数据对象Madmin的实例的数据) |
Firefly官方教程之DBentrust使用文档