<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Redis</title>
    <link type="text/css" rel="stylesheet" href="css/bootstrap.min.css">
    <link type="text/css" rel="stylesheet" href="css/custom.css">
    <script src="js/respond.min.js"></script>
</head>
<body>
<div class="container-fluid">
    <div class="page-header">
        <h3>Redis</h3>
    </div>
    <div class="row">
        <div class="col-sm-12">
            <div class="panel-group" id="accordion">
                <!-- Start --------------------------------------- -->
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title">
                            <a href="#one" class="accordion-toggle" data-toggle="collapse" data-parent="#accordion">
                                <i class="glyphicon glyphicon-download-alt"></i>
                                <span>Подключение</span>
                            </a>
                        </h4>
                    </div>
                    <div id="one" class="panel-collapse collapse in">
                        <div class="panel-body">
                            <div class="row">
                                <div class="col-sm-3"><strong>QUIT</strong></div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">Указание серверу молча закрыть соединение.</li>
                                        <li class="list-group-item list-group-item-info">Нет. Соединение закрывается сразу же после получения команды QUIT.</li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3"><strong>AUTH</strong></div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">
                                            Запрос аутентификации для сервера, защищённого паролем. Сервер Redis может настроен так, чтобы запрашивать у клиента пароль, перед тем как разрешить другие команды. Это делается с помощью директивы 'requirepass' в конфигурационном файле.
                                        </li>
                                        <li class="list-group-item list-group-item-info"></li>
                                    </ul>
                                </div>
                            </div> 
                        </div>
                    </div>
                </div>

                <!-- Start --------------------------------------- -->
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title">
                            <a href="#command" class="accordion-toggle" data-toggle="collapse" data-parent="#accordion">
                                <i class="glyphicon glyphicon-download-alt"></i>
                                <span>Команды, применимые ко всем видам значений</span>
                            </a>
                        </h4>
                    </div>
                    <div id="command" class="panel-collapse collapse">
                        <div class="panel-body">
                            <div class="row">
                                <div class="col-sm-3"><strong>EXISTS key</strong><small> - проверка существования ключа</small></div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">
                                            Время выполнеия: O(1).
                                            <br/>
                                            Проверяет существования указанного ключа. Возвращает "1", если ключ существует, или "0" в противном случае. Обратите внимание, что для ключа, содержащего пустую строку, вернётся 0.
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Числовой ответ:
                                            <blockquote> 1 - ключ существует <br/> 0 - ключа не существует</blockquote>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3">
                                    <strong>DEL key1 key2 ... keyN</strong>
                                    <small> - удаление одного или нескольких ключей </small>
                                </div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">
                                            <strong>DEL key1 key2 ... keyN</strong>
                                            <br/>
                                            Время выполнения: O(1)
                                            <br/>
                                            Удаление указанных ключей. Если переданный ключ не существует, операция для него не выполняется. Команда возвращает количество удалённых ключей
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Числовой ответ:
                                            <blockquote>число >0, если был удалён один ключ или несколько
                                                0, если ни одного ключа не существовало</blockquote>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3">
                                    <strong>TYPE key</strong>
                                    <small> - получение типа значения, сохранённого в ключе </small>
                                </div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">
                                            <strong>TYPE key</strong> <br/>
                                            Время выполнения: O(1)
                                            <br/>
                                            Возвращает тип значения, связанного с ключом, в виде строки. Возможны следующие варианты: "none", "string", "list", "set", "zset", "hash". "none" означает, что ключа не существует.
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Код состояния. А именно:
                                            <blockquote>
                                            "none" - ключа не существует<br/>
                                            "string" - ключ содержит строку<br/>
                                            "list" - ключ содержит список<br/>
                                            "set" - ключ содержит множество<br/>
                                            "zset" - ключ содержит упорядоченное множество<br/>
                                            "hash" - ключ содержит хэш
                                            </blockquote>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3"><strong>KEYS pattern</strong>
                                    <small> - получение всех ключей, соответствующих шаблону </small>
                                </div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success">
                                            <strong>KEYS pattern</strong><br/>
                                            Время выполнения: O(n), где n - общее количество ключей в базе. Так же предполагается, что ключи и шаблон (pattern) имеют ограниченную длину.
                                            <br/>
                                            Возвращает все ключи, подходящие под шаблон в стиле "glob-style", как разделённые пробелами строки. Например, если у вас в базе находятся ключи "foo" и "foobar", команда KEYS foo* вернёт "foo foobar".
                                            <br/>
                                            Обратите внимание, что время выполнения этой операции соответствует O(n), то есть является достаточно небольшим. Для примера, на лэптопе начального уровня, Redis просканирует базу из 1 миллиона ключей за 40 миллисекунд. Но всё же лучше рассматривать данную команду, как одну из медленных. Тех, которые могут снизить производительность базы, если использовать их без надлежащей осторожности.
                                            <br/>
                                            Примеры шаблонов в стиле "glob-style":
                                            <br/>
                                            "h?llo" будут соответствовать "hello", "hallo", "hhllo"<br/>
                                            "h*llo" - "hllo", "heeeello"<br/>
                                            "h[ae]llo" - "hello" и "hallo", но не "hillo"<br/>
                                            <br/>
                                            Используйте \ для экранирования специальных символов, если желаете, чтобы они подставлялись в исходном виде.
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Многосоставной ответ, а конкретно строка в виде разделённых пробелами ключей.
                                        </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3"><strong>RANDOMKEY</strong>
                                    <small> - получение случайного ключа из существующих</small>
                                </div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success"><strong>RANDOMKEY</strong><br/>
                                            Время выполнения: O(1).
                                            <br/>
                                            Возвращает случайный ключ из текущей базы.
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Однострочный ответ: случайный ключ или пустая строка, если база пуста.
                                        </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-sm-3"><strong>RENAME oldname newname</strong>
                                    <small> - переименование старого ключа на новый с удалением того чтобы было в новом </small>
                                </div>
                                <div class="col-sm-9">
                                    <ul class="list-group">
                                        <li class="list-group-item list-group-item-success"><strong>RENAME oldkey newkey</strong><br/>
                                            Время выполнения: O(1)
                                            <br/>
                                            Атомарное переименование ключа из oldkey в newkey. Если в качестве источника и приёмника указывается один и тот же ключ, возвращается ошибка. Если newkey уже существует, он перезаписывается.
                                        </li>
                                        <li class="list-group-item list-group-item-info">
                                            Код статуса.
                                        </li>
                                    </ul>
                                </div>
                            </div>
<!--                             div.row>div.col-sm-3>strong+small^div.col-sm-9>ul.list-group>li.list-group-item.list-group-item-success>strong+br^li.list-group-item.list-group-item-info-->
                        </div>
                    </div>
                </div>


                <!-- Start --------------------------------------- -->
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title">
                            <a href="#one" class="accordion-toggle" data-toggle="collapse" data-parent="#accordion">
                                <i class="glyphicon glyphicon-download-alt"></i>
                                <span></span>
                            </a>
                        </h4>
                    </div>
                    <div id="one" class="panel-collapse collapse">
                        <div class="panel-body">
                            <!-- div.row>div.col-sm-3>strong+small^div.col-sm-9>ul.list-group>li.list-group-item.list-group-item-success>strong+br^li.list-group-item.list-group-item-info-->
                        </div>
                    </div>
                </div>


            </div>
        </div>
    </div>

</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>