-
Notifications
You must be signed in to change notification settings - Fork 2
CN Store Server United Store
himulawang edited this page Oct 21, 2014
·
1 revision
联合Store是一套完整的服务端数据缓存方案。
该方案以MariaDB为数据基准,Redis为缓存。为提高数据读取效率,减小MariaDB的读取压力而存在。
当获取数据时,先从Redis中读取,如果Redis不存在,再去MariaDB中获取。以此减少MariaDB的读压力。
写入数据时,先写入MariaDB,再写入Redis。这样Redis中数据丢失,MariaDB中的数据永远正确,避免数据不一致问题。
使用该解决方案,只需在orm.dart中配置storeOrder即可:
storeOrder的顺序为读取顺序,当写入时,是从后往前执行。
Map orm = {
'User': {
'Model': {
'pk': [0],
'column': [
'id',
'name',
'email',
'country',
'city',
],
'toAddFilter': [0],
'toSetFilter': [0],
'toFullFilter': [],
'toAbbFilter': [],
'toListFilter': [],
},
'ModelStore': {
'storeOrder': [
{
'type': 'redis',
'readWriteSeparate': false,
'sharding': true,
'shardMethod': 'CRC32', // CRC32 & Consistent Hashing
'master': 'GameCache',
'slave': 'GameCacheSlave',
'expire': 86400,
'mode': 'Atom', // TODO 'Atom' mode use hash type store model, 'Block' mode compress model to string type
'abb': 'u',
},
{
'type': 'mariaDB',
'readWriteSeparate': false,
'sharding': true,
'shardMethod': 'CRC32',
'master': 'GameDB',
'slave': 'GameDBSlave',
'table': 'User',
},
],
},
},
};