TicketCreatePage 重构: - SQL编辑器右侧新增数据库浏览器面板(tab化) - 表结构Tab: 表列表→字段展开(PK/索引标记)→点击插入SQL - 索引Tab: 选中表的索引详情(索引名/类型/字段/基数) - Redis Keys Tab: DB选择器+Key模式搜索+Key列表+类型/TTL/值查看 SchemaSidebar 新组件(365行): - MySQL/PostgreSQL: 左侧数据库表树→字段→点击插入SQL - Redis: Key树(DB选择→模式搜索→Key值查看, 类似Another Redis Desktop Manager) - 用于 QueriesPage 查询页面 Dashboard: - 快捷按钮改用 useNavigate + onClick 替代 <a href> API增强: - redis.ts: 新增 getKeys/createKey/deleteKey 方法 - instanceDetail.ts: 导出 TableMeta/TableDetail/ColumnInfo/IndexInfo 类型接口
44 lines
1.8 KiB
TypeScript
44 lines
1.8 KiB
TypeScript
import request from './request';
|
|
|
|
export const redisApi = {
|
|
// Redis 信息概览
|
|
getInfo: (instanceId: number) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/info'),
|
|
|
|
// DBSIZE
|
|
getDbsize: (instanceId: number, db?: number) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/dbsize', { params: { db: db ?? 0 } }),
|
|
|
|
// 键列表
|
|
scanKeys: (instanceId: number, params: { db?: number; pattern?: string; cursor?: number; count?: number; type?: string }) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/keys', { params }),
|
|
|
|
// 键详情
|
|
getKeyDetail: (instanceId: number, key: string, db?: number) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/keys/' + encodeURIComponent(key), { params: { db: db ?? 0 } }),
|
|
|
|
// 慢日志
|
|
getSlowlog: (instanceId: number, count?: number) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/slowlog', { params: { count: count ?? 10 } }),
|
|
|
|
// 客户端列表
|
|
getClients: (instanceId: number) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/clients'),
|
|
|
|
// 执行命令
|
|
executeCommand: (instanceId: number, data: { db: number; command: string }) =>
|
|
request.post<any, any>('/redis/' + instanceId + '/command', data),
|
|
|
|
// 获取键列表(兼容旧接口)
|
|
getKeys: (instanceId: number, params?: { db?: number; pattern?: string; count?: number; type?: string; cursor?: number }) =>
|
|
request.get<any, any>('/redis/' + instanceId + '/keys', { params }),
|
|
|
|
// 创建键
|
|
createKey: (instanceId: number, data: { db?: number; key: string; type?: string; value: any; ttl?: number }) =>
|
|
request.post<any, any>('/redis/' + instanceId + '/keys', data),
|
|
|
|
// 删除键
|
|
deleteKey: (instanceId: number, key: string, db?: number) =>
|
|
request.delete<any, any>('/redis/' + instanceId + '/keys/' + encodeURIComponent(key), { params: { db: db ?? 0 } }),
|
|
};
|