swoole实现一个redis协议的内存键值对缓存服务器代码
代码语言:phpcli
所属分类:通讯
代码描述:swoole实现一个redis协议的内存键值对缓存服务器代码
代码标签: swoole redis 协议 内存 键值 对 缓存 服务器 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php use Swoole\Redis\Server; define('DB_FILE', __DIR__ . '/db'); $server = new Server("127.0.0.1", 9501, SWOOLE_BASE); if (is_file(DB_FILE)) { $server->data = unserialize(file_get_contents(DB_FILE)); } else { $server->data = array(); } $server->setHandler('GET', function ($fd, $data) use ($server) { if (count($data) == 0) { return $server->send($fd, Server::format(Server::ERROR, "ERR wrong number of arguments for 'GET' command")); } $key = $data[0]; if (empty($server->data[$key])) { return $server->send($fd, Server::format(Server::NIL)); } else { return $server->send($fd, Server::format(Server::STRING, $server->data[$key])); } }); $server->setHandler('SET', function ($fd, $data) use ($server) { if (count($data) < 2) { return $server->send($fd, Server::format(Server::ERROR, "ERR wrong number of arguments for 'SET' command")); } $key = $data[0]; $server->data[$key] = $data[1]; return $server->send($fd, Server::format(Server::STATUS, "OK")); }); $server->setHandler('sAdd', function ($fd, $data) use ($server) { if (count($data) < 2) { return $server->send($fd, Server::format(Server::ERROR, "ERR wrong number of arguments for 'sAdd' command")); } $key = $data[0]; if (!isset($server->data[$key])) { $array[$key] = array(); } $count = 0; for ($i = 1; $i < count($data); $i++) { $value = $data[$i]; if (!isset($server->data[$key][$value])) { $server->data[$key][$value] = 1; $count++; } } return $server->send($fd, Server::.........完整代码请登录后点击上方下载按钮下载查看
网友评论0