RedFeed демонстрирует, как использовать кэширование Redis для повышения эффективности бессерверного приложения на базе AWS DynamoDB и ускорения его загрузки.
Redis используется для целей кэширования.
Если данные API меняются нечасто, то мы кэшируем предыдущие данные результатов API и при следующих запросах повторно отправляем кэшированные данные из Redis.
Архитектура системы RedFeed до использования Redis:
Архитектура системы RedFeed После использования Redis:
API RedFeed:
- Обзор моего проекта
- Производительность Redis выше:
- Установка RedFeed:
- Submission Category:
- Видео, объясняющее мой проект
- Используемый язык
- Ссылка на код
- p2pteamz / redfeed
- RedFeed демонстрирует, как использовать хранилище Redis для работы приложения AWS Serverless.
- RedFeed:
- Как используется Redis:
- Коллабораторы
Обзор моего проекта
Проект 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)
- Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как многомодельной базой данных.
- Используйте RedisInsight для визуализации данных в Redis.
- Подпишитесь на бесплатную базу данных Redis.