mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 23:45:59 +00:00
Add field insert functionality for Redis data types
This commit is contained in:
@@ -393,18 +393,52 @@ async function handleSaveRedisData({ msgid, changeSet }) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (change.inserts && Array.isArray(change.inserts)) {
|
||||||
|
for (const insert of change.inserts) {
|
||||||
|
await driver.query(dbhan, `HSET "${change.key}" "${insert.key}" "${insert.value}"`);
|
||||||
|
|
||||||
|
if (insert.ttl !== undefined && insert.ttl !== null && insert.ttl !== -1) {
|
||||||
|
try {
|
||||||
|
await dbhan.client.call('HEXPIRE', change.key, insert.ttl, 'FIELDS', 1, insert.key);
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (change.type === 'zset') {
|
} else if (change.type === 'zset') {
|
||||||
if (change.updates && Array.isArray(change.updates)) {
|
if (change.updates && Array.isArray(change.updates)) {
|
||||||
for (const update of change.updates) {
|
for (const update of change.updates) {
|
||||||
await driver.query(dbhan, `ZADD "${change.key}" ${update.score} "${update.member}"`);
|
await driver.query(dbhan, `ZADD "${change.key}" ${update.score} "${update.member}"`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (change.inserts && Array.isArray(change.inserts)) {
|
||||||
|
for (const insert of change.inserts) {
|
||||||
|
await driver.query(dbhan, `ZADD "${change.key}" ${insert.score} "${insert.member}"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (change.type === 'list') {
|
} else if (change.type === 'list') {
|
||||||
if (change.updates && Array.isArray(change.updates)) {
|
if (change.updates && Array.isArray(change.updates)) {
|
||||||
for (const update of change.updates) {
|
for (const update of change.updates) {
|
||||||
await driver.query(dbhan, `LSET "${change.key}" ${update.index} "${update.value}"`);
|
await driver.query(dbhan, `LSET "${change.key}" ${update.index} "${update.value}"`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (change.inserts && Array.isArray(change.inserts)) {
|
||||||
|
for (const insert of change.inserts) {
|
||||||
|
await driver.query(dbhan, `RPUSH "${change.key}" "${insert.value}"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (change.type === 'set') {
|
||||||
|
if (change.inserts && Array.isArray(change.inserts)) {
|
||||||
|
for (const insert of change.inserts) {
|
||||||
|
await driver.query(dbhan, `SADD "${change.key}" "${insert.value}"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (change.type === 'stream') {
|
||||||
|
if (change.inserts && Array.isArray(change.inserts)) {
|
||||||
|
for (const insert of change.inserts) {
|
||||||
|
const streamId = insert.id === '*' || !insert.id ? '*' : insert.id;
|
||||||
|
await driver.query(dbhan, `XADD "${change.key}" ${streamId} value "${insert.value}"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user