php+vue实现简洁的redis可视化web管理器代码
代码语言:php
所属分类:其他
代码描述:php+vue实现简洁的redis可视化web管理器代码,可实现key查找、编辑、删除、新增等操作。
代码标签: php vue 简洁 redis 可视化 web 管理器 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php // index.php - Redis Web 管理工具 (PHP 8+ 推荐, 兼容 PHP 5.6 / Vue.js 2) // @version 2.0 - 企业级 UI/UX 优化版 // --- 配置 --- $redis_host = '127.0.0.1'; $redis_port = 6379; $redis_password = ''; // 如果没有密码,请留空 // --- 配置结束 --- try { $redis = new Redis(); if (!$redis->connect($redis_host, $redis_port)) { throw new Exception("无法连接到 Redis 服务于 {$redis_host}:{$redis_port}"); } if ($redis_password && !$redis->auth($redis_password)) { throw new Exception('Redis 认证失败,请检查密码'); } } catch (Exception $e) { // 如果是 API 请求,返回 JSON 错误;否则显示 HTML 错误页 if (!empty($_GET['action']) || !empty($_POST['action'])) { header('Content-Type: application/json'); echo json_encode(['success' => false, 'message' => $e->getMessage()]); } else { die("<h3>Redis 连接错误</h3><p>{$e->getMessage()}</p>"); } exit; } // API 路由处理 if (isset($_GET['action']) || isset($_POST['action'])) { header('Content-Type: application/json'); $action = $_REQUEST['action'] ?? ''; try { switch ($action) { // --- 读取操作 (GET) --- case 'keys': $pattern = isset($_GET['pattern']) && $_GET['pattern'] !== '' ? $_GET['pattern'] : '*'; $keys = $redis->keys($pattern); sort($keys); // 对 key 进行排序 $data = array_map(function($key) use ($redis) { $type = $redis->type($key); return [ 'key' => $key, 'type' => typeToString($type), 'ttl' => $redis->ttl($key), 'size' => getValueSize($redis, $key, $type) ]; }, $keys); echo json_encode(['success' => true, 'data' => $data]); break; case 'get': $key = $_GET['key']; if (!$redis->exists($key)) throw new Exception("Key '{$key}' 不存在"); $type = $redis->type($key); $value = getRedisValue($redis, $key, $type); echo json_encode([ 'success' => true, 'data' => [ 'key' => $key, 'type' => typeToString($type), 'value' => $value, 'ttl' => $redis->ttl($key) ] ]); break; // --- 写入/删除操作 (POST) --- case 'set': $key = $_POST['key'] ?? ''; $value = $_POST['value'] ?? ''; $type = $_POST['type'] ?? 'string'; $ttl = (int)($_POST['ttl'] ?? -1); if (empty($key)) throw new Exception("Key 不能为空"); setRedisValue($redis, $key, $value, $type); if ($ttl > 0) { $redis->expire($key, $ttl); } else { $redis->persist($key); } echo json_encode(['success' => true, 'message' => "Key '{$key}' 已成功保存"]); break; case 'delete': $key = $_POST['key']; if ($redis->del($key)) { echo json_encode(['success' => true, 'message' => "Key '{$key}' 已成功删除"]); } else { throw new Exception("删除 Key '{$key}' 失败或 Key 不存在"); } break; case 'info': echo json_encode(['success' => true, 'data' => $redis->info()]); break; default: throw new Exception("未知的 API 操作: {$action}"); } } catch (Exception $e) { echo json_encode(['success' => false, 'message' => $e->getMessage()]); } exit; } // --- 后端工具函数 --- function typeToString($typeId) { // Redis::TYPE_* 常量映射 $map = [ Redis::REDIS_STRING => 'string', Redis::REDIS_SET => 'set', Redis::REDIS_LIST => 'list', Redis::REDIS_ZSET => 'zset', Redis::REDIS_HASH => 'hash', ]; return $map[$typeId] ?? 'unknown'; } function getValueSize($redis, $key, $type) { switch ($type) { case Redis::REDIS_STRING: return strlen($redis->get($key)); case Redis::REDIS_HASH: return $redis->hLen($key); case Redis::REDIS_LIST: return $redis->lLen($ke.........完整代码请登录后点击上方下载按钮下载查看
网友评论0