DacheQL — это инструмент разработчика с открытым исходным кодом, который использует высочайшую точность запросов GraphQL и реализует кэширование для повышения эффективности запросов вашего веб-сайта.
Что такое GraphQL?
GraphQL — это язык запросов для API и среда выполнения для выполнения этих запросов с вашими существующими данными. GraphQL предоставляет полное и понятное описание данных в вашем API, дает клиентам возможность запрашивать именно то, что им нужно, и ничего больше, упрощает развитие API с течением времени и предоставляет мощные инструменты разработчика.
С GraphQL вы можете указать, какие данные вы хотите запрашивать у своего API. Вы получите именно то, что вам нужно, не больше и не меньше. Запросы GraphQL всегда возвращают предсказуемые результаты.
Что такое кеш и зачем его использовать?
Проще говоря, кеш можно определить как высокоскоростное хранилище данных, в котором хранится подмножество данных. Это сделано для того, чтобы будущие запросы на эти данные обслуживались быстрее, чем при доступе к основному месту хранения данных. Но зачем нам использовать кеш? Это действительно имеет значение? Да!
79%клиентов, недовольных скоростью загрузки сайта, с меньшей вероятностью вернутся
1 из 4 посетителей покинет сайт, если загрузка займет более 4 секунд
Даже разница в однусекунду может привести к снижению количества конверсий на 7%.
Производительность имеет значение.
Здесь на помощь приходит DacheQL!
С DacheQL вы можете автоматически кэшировать запросы GraphQL с помощью простой настройки. Если вы используете DacheQL впервые, посетите наш веб-сайт по адресу https://dacheql.com/, чтобы лучше понять DacheQL.
Если вы готовы начать работу с DacheQL, обратитесь к нашей документации!
Установка и настройка
Если вы не установили dacheql, выполните следующую команду, чтобы установить DacheQL в свое приложение:npm install dacheql
Теперь, когда вы установили DacheQL, в файле вашего сервера вам нужно будет указать наше промежуточное ПО для обработки запросов GraphQL с использованием формата CommonJS:const dacheql = require(‘dacheql’);
Использование DacheQL с Redis
DacheQL можно использовать двумя способами. Первый способ использовать DacheQL — это использовать его с Redis, хранилищем данных с открытым исходным кодом в памяти, которое можно использовать для кэширования на стороне клиента. Вам нужно убедиться, что Redis уже установлен на вашем компьютере. Если вы этого не сделали и хотите использовать Redis, обратитесь к документации Redis здесь.
Как только ваш клиент Redis будет подключен, просто передайте его в нашу функцию DacheQL следующим образом:app.use(‘/graphql’, dacheQL({ redis } = {<redis: client>}, capacity, endpoint, TTL), expressGraphQL({ schema: schema, graphiql: true, }));
Просто замените <redis: client>
на redis: *name of your client*
Поскольку мы используем Redis, второй параметр capacity
не имеет значения, так как он используется для нашего кэша LRU. Вы можете просто заменить capacity
чем-то произвольным, например 50
.
Третий параметр — это конечная точка, в которой вы фактически используете GraphQL. Эта конечная точка может быть чем-то вроде https://localhost:3000/graphql
Наш последний параметр TTL
указывает время жизни в кэше Redis. Просто введите время, в течение которого вы хотите, чтобы запрос сохранялся в кеше, в секундах. (Пример: 50
) Теперь вы можете кэшировать ответы GraphQL с помощью Redis!
Использование DacheQL с нашим настраиваемым кешем политик вытеснения LRU
Если вы не используете кэширование Redis, DacheQL предоставляет промежуточное ПО для кэширования с использованием памяти сервера с нашим настраиваемым кешем, который ведет себя в соответствии с политикой вытеснения LRU. Аргументы, которые вы должны ввести для этого промежуточного программного обеспечения, следующие:
Для первого параметра, поскольку вы не используете Redis, просто передайте пустой объект {}
вот так.
Далее следует емкость, которую вы хотели бы иметь в своем кеше. Эта емкость относится к тому, когда наш кеш начнет вытеснять элементы. Например, если вы установите емкость на 50, элемент будет удален после 51-го уникального запроса. Следует отметить, что если вы передадите нецелое число, оно будет для вас округлено в меньшую сторону. Нецелые числа, отрицательные числа и емкости меньше двух по умолчанию просто создают выборку GraphQL без сохранения значений в кеше.
Третий параметр — это конечная точка, в которой вы фактически используете GraphQL. Например, это может быть https://localhost:3000/graphql.
Наш последний параметр — это время жизни, или как долго вы хотите, чтобы этот конкретный запрос оставался в вашем кеше. Поскольку мы здесь не используем Redis, просто передайте что-нибудь для вашего TTL, так как наш кеш не зависит от этой информации. Теперь вы можете кэшировать свои ответы GraphQL с помощью нашей пользовательской политики вытеснения LRU!
Как внести свой вклад
Если вы хотите внести свой вклад в DacheQL, посетите DacheQL на GitHub!
Заключительные мысли
В быстро меняющейся технической среде скорость работы веб-сайтов сейчас важна как никогда. DacheQL упрощает процесс кэширования ваших запросов GraphQL, чтобы разработчик мог повысить производительность своих приложений. Если вам понравился наш простой в использовании пакет NPM и эта статья, обязательно поставьте аплодисменты статье, подпишитесь на команду в Linkedin и Github и отметьте наш DacheQL GitHub звездочкой!
Команда DacheQL
Эндрю Мой @ Linkedin | Github
ChunHao Zheng @ Linkedin | Github
Итан Чуанг @ Linkedin | Github
Сэнди Лю @ Linkedin | Гитхаб