RedFeed: Более быстрый RESTful Serverless API с Redis

RedFeed демонстрирует, как использовать кэширование Redis для повышения эффективности бессерверного приложения на базе AWS DynamoDB и ускорения его загрузки.

Redis используется для целей кэширования.

Если данные API меняются нечасто, то мы кэшируем предыдущие данные результатов API и при следующих запросах повторно отправляем кэшированные данные из Redis.

Архитектура системы RedFeed до использования Redis:

Архитектура системы RedFeed После использования Redis:

API RedFeed:

Обзор моего проекта

Проект RedFeed демонстрирует, как использовать Redis для создания более быстрого RESTful API на базе Amazon DynamoDB с пагинацией и бессерверной архитектурой.

Redis используется для кэширования.

Если получаемые данные API не часто меняются, то мы кэшируем предыдущие данные результатов API и при следующих запросах повторно отправляем кэшированные данные из Redis.

API представляет собой посевной набор данных о криптовалютных финансовых транзакциях. Полученный API транзакций будет выглядеть следующим образом.


{
    "page":"",
    "currency":"",
    "country":"",
    "limit":"",
    "search":"",
    "transactions":[
        {
            "Transaction_Id": "", 
            "By": "", 
            "Amount": "", 
            "Country": "", 
            "Currency": "", 
            "Created_At": "",
            "Bitcoin_Address": "", 
            "Updated_At": "",
            "Customer_Email": "", 
            "Customer_Id": ""
        },
        {
            "Transaction_Id": "", 
            "By": "", 
            "Amount": "", 
            "Country": "", 
            "Currency": "", 
            "Created_At": "",
            "Bitcoin_Address": "", 
            "Updated_At": "",
            "Customer_Email": "", 
            "Customer_Id": ""
        }]
}

Вход в полноэкранный режим Выход из полноэкранного режима

Инициализация Redis:

Redis инициализируется.


const redis = new Redis({
    port: 6379,
    host: "127.0.0.1",
    tls: {},});

Вход в полноэкранный режим Выход из полноэкранного режима

Кэширование Redis:

Redis проверяет, не кэшированы ли уже данные, затем возвращает кэшированные данные, если они доступны.

В противном случае выполняется запрос к базе данных.


const cachedResult = await redis.get(page);

if (cachedResult) {
    console.log('Returning cached data');

    return {
        statusCode: 200,
        body: JSON.stringify(JSON.parse(cachedResult))
      };
} 

Вход в полноэкранный режим Выход из полноэкранного режима

Если результат не кэширован, то сохраните результат в Redis.


if(!cachedResult){
    await redis.set(page, resultStore);    
}

Войти в полноэкранный режим Выход из полноэкранного режима

Производительность Redis выше:

Использование Redis для возврата кэшированных данных может ускорить загрузку приложения, что очень важно, когда у нас либо много данных в ответе, либо бэкенду требуется время для отправки ответа, либо мы делаем вызов API для получения данных из базы данных.

Установка RedFeed:

Перед установкой RedFeed установите на свой компьютер следующие приложения.

  • Node.JS, v16.9.1

  • Redis (Для пользователей Linux), v7.21.1

  • Memurai (Для пользователей Windows), v2.0.3.

Скачайте RedFeed:

Сначала скачайте или клонируйте RedFeed с Github:

Перейдите на https://github.com/p2pteamz/redfeed и скачайте или клонируйте RedFeed.

Затем установите зависимости проекта Node.JS.

Установите зависимости NPM:

Откройте разархивированную или клонированную папку приложения RedFeed в вашем любимом редакторе кода (я использую VS Code) и в терминале командной строки в папке проекта.

Установите Serverless Framework:

npm i -g serverless

Установите Serverless Offline:

npm i -g serverless-offline

Установите Serverless Bundle:

npm i —save-dev serverless-bundle

Установите модули зависимостей npm для приложения.

npm install

Запустите Serverless в автономном режиме:

serverless plugin install -n serverless-offline

Установите DynamoDB в автономном режиме:

sls dynamodb install

Запуск RedFeed:

Теперь вы можете запустить приложение RedFeed, выполнив приведенную ниже команду CLI.

sls offline start

Если запуск прошел успешно, вы должны увидеть сообщение «Server ready: http://localhost:3000 🚀» в вашей консоли.

Навигация по API:

Откройте браузер и посетите ‘http://localhost:3000/dev/transactions ‘ для просмотра необработанных данных JSON.

Конечные точки RESTful URL имеют следующие параметры.

GET/ dev/transactions?cur=BTC&cc=BW&lm=10&s=Tom&pg=1

Определения параметров конечной точки API:

«cur» — тип криптовалюты. Допустимые коды: «ETH», «BTC», «LTC».

«cc» — код страны. Допустимые коды: «US», «NG», «SA», «BW», «GH

«lm» — ограничение на размер страницы. Только целое число. Установка значения ’10’ означает, что вы хотите получить только 10 результатов на странице.

«s» — имя клиента. Только строковый текст.

«pg» — номер страницы. Только целое число.

Примеры;

Чтобы получить страницу 1 API, отправьте GET-запрос вида;

GET/ http://localhost:3000/dev/transactions?cur=BTC&cc=NG&lm=10&s=&pg=1

Чтобы получить страницу 2 API, отправьте GET-запрос следующим образом;

GET/ http://localhost:3000/dev/transactions?cur=BTC&cc=NG&lm=10&s=&pg=2

Submission Category:

Минимализм Маги

Видео, объясняющее мой проект

Используемый язык

Node.JS, JavaScript

Ссылка на код

p2pteamz / redfeed

RedFeed демонстрирует, как использовать хранилище Redis для работы приложения AWS Serverless.

RedFeed:

RedFeed демонстрирует, как использовать кэширование Redis для повышения эффективности бессерверного приложения на базе AWS DynamoDB и ускорения его загрузки.

Архитектура системы RedFeed до использования Redis:

Архитектура системы RedFeed После использования Redis:

API RedFeed:

Видео с описанием RedFeed:

Как используется Redis:

Проект демонстрирует, как использовать Redis для создания более быстрого RESTful API на базе Amazon DynamoDB с пагинацией и бессерверной архитектурой.

Redis используется для кэширования.

Если получаемые данные API не часто меняются, то мы кэшируем предыдущие данные результатов API и при следующих запросах повторно отправляем кэшированные данные из Redis.

API представляет собой посевной набор данных о криптовалютных финансовых транзакциях. Полученный API транзакций будет выглядеть следующим образом.

{
    "page":""
    "currency":"",
    "country":"",
    "limit":"",
    "search":"",
    "transactions":[
        {
            "Transaction_Id"

Вход в полноэкранный режим Выход из полноэкранного режима
Посмотреть на GitHub

Коллабораторы

Вакинду Филлиам (Github)


  • Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как многомодельной базой данных.
  • Используйте RedisInsight для визуализации данных в Redis.
  • Подпишитесь на бесплатную базу данных Redis.

Оцените статью
devanswers.ru
Добавить комментарий