分布式键值数据库 distributedKVStore 数据管理
·
利用HarmonyOS 分布式软总线与分布式数据能力,掌握分布式键值数据库的创建、读写与跨设备自动同步。主要完成以下功能:
两台设备(或模拟器多实例)登录同一账号并组网;
设备 A 写入数据,观察约 1 秒内设备 B 的 `dataChange` 回调触发并刷新;
断网后重新组网,验证数据自动补齐同步;
模拟两设备同键写入,观察"最后写入生效"合并策略。
真正实现
"一次开发、多端同步"的分布式数据管理思想;
掌握分布式 KV 数据库创建参数(类型、安全级别);
掌握数据写入与 `dataChange` 订阅机制。
核心代码:
import { distributedKVStore } from '@kit.ArkData'
import { BusinessError } from '@kit.BasicServicesKit'
let kvManager: distributedKVStore.KVManager | undefined = undefined
let kvStore: distributedKVStore.SingleKVStore | undefined = undefined
// 1) 创建管理器与分布式数据库
const context = this.getUIContext().getHostContext()
const manager = distributedKVStore.getKVManager(context)
const options: distributedKVStore.Options = {
createIfMissing: true,
encrypt: false,
backup: false,
kvStoreType: distributedKVStore.KVStoreType.DEVICE_COLLABORATION,
securityLevel: distributedKVStore.SecurityLevel.S1
}
kvStore = await manager.getKVStore<distributedKVStore.SingleKVStore>(
'storeId', options)
// 2) 写入数据(自动向组网设备同步)
await kvStore.put('student_01', JSON.stringify({ name: '张三', score: 92 }))
// 3) 订阅远端数据变化
kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE,
(data) => {
data.insertEntries.forEach(e => console.info(`同步到达: ${e.key}`))
})
更多推荐
所有评论(0)