原地址:http://www.9miao.com/question-15-54002.html
Firefly——dbentrust示例说明
一、数据库准备
本篇示例演示的是firefly与MySQL和memcached之间的数据处理,所以要先准备好数据库。(数据库工具使用的是SQLyogEnt)
1、创建数据库
<ignore_js_op>
2、建表
下面是一个简单的角色表(player)
<ignore_js_op>
二、firefly与MySQL之间的交互(test_dbpool.py)
<ignore_js_op>
第18行中的sql语句可以是任何合法的sql语句,对数据库进行操作。本例是查询player表中id为100001的角色的等级,运行文件:
<ignore_js_op>
打印出的结果为40,同数据库中完全一样。(最后得出的结果为元组的原因,详见python的MySQLdb这个模块的用法,网上教程很多,这里不再说明。)
三、firefly与memcached之间的交互(test_mclient.py)
<ignore_js_op>
运行本例前,一定要保证memcached服务正常运行,之前发过关于memcached安装、配置方面的文档,这里不再说明。下面运行文件:
<ignore_js_op>
四、综合示例(test.py)
<ignore_js_op>
<ignore_js_op>
43,44行是将数据库中的player表的数据同步到memcached中
46行是将player表的数据注册到MAdminManager中,MAdminManager之前也有提到过,本质上相当于数据库的“库”,管理所有的“表”
55行会将所有注册到MAdminManager中的表数据同步到数据库,一般用于日常的游戏数据备份(避免因特殊事故造成服务器关闭而造成的数据丢失,但此举比较消耗性能,建议间隔时间长一点)以及服务器关闭前备份数据。
运行文件:
<ignore_js_op>
可以看出memcached中的数据levels已由40被改为20,下面看下数据库中是否改变:
<ignore_js_op>