Redis, хранилище структур данных в памяти с открытым исходным кодом, широко известно благодаря своим высокопроизводительным возможностям и универсальности в обработке данных. В сочетании с Total.js, мощной средой веб-приложений Node.js, он может повысить производительность и масштабируемость вашего проекта. В этом сообщении блога мы рассмотрим интеграцию Redis с Total.js и рассмотрим практические примеры, чтобы продемонстрировать, как эта комбинация может поднять ваши проекты веб-разработки на новую высоту.
Почему Redis с Total.js?
Redis предлагает множество преимуществ при использовании в сочетании с платформой Total.js:
- Кэширование. Redis служит отличным решением для кэширования, позволяя хранить часто используемые данные в памяти, что сокращает время отклика и снижает нагрузку на базу данных.
- Управление данными в режиме реального времени: Redis поддерживает функции публикации/подписки, что позволяет эффективно обрабатывать данные в режиме реального времени и упрощает реализацию таких функций, как уведомления в реальном времени, приложения чата и многое другое.
- Очереди: Redis включает надежный механизм очередей, позволяющий эффективно управлять фоновыми задачами, асинхронно обрабатывать задания и создавать масштабируемые системы.
Теперь давайте углубимся в процесс интеграции и рассмотрим некоторые практические варианты использования.
Установка и настройка
Мы не рассказываем, как установить сервер Redis в этом сообщении блога, но убедитесь, что он установлен на вашем локальном или удаленном сервере. Просто перейдите по этой ссылке на веб-сайт Redis и установите ее в соответствии с вашей операционной системой. Затем выполните следующие действия, чтобы интегрировать Redis с Total.js:
Настройте простой проект Total.js.
Прежде чем создавать проект для этого руководства, убедитесь, что на вашем компьютере установлен node.js версии 14 или более ранней. Этого достаточно, чтобы начать создавать что угодно с помощью фреймворка Total.js. Затем нам нужно открыть ваш терминал и ввести следующие команды:
# create folder and move into it $ mkdir todoapp && cd todoapp # init project with npm $ npm init -y # install total.js and redis client $ sudo npm install total4 redis
Теперь вы можете открыть проект в своем любимом редакторе кода. В моем случае я использую VSCode.
Создайте основной файл записи (index.js)
Создайте файл .js
в корне вашего приложения. Имя файла записи приложения обычно представляет собой файл index.js
, но вы можете назвать его как хотите! Важно то, что он понадобится вам для запуска сервера разработки вашего приложения. После того, как вы его создали, необходимо поставить следующий простой стартовый скрипт:
require('total4/debug')({ port: 5000 });
Этой одной строки кода достаточно, чтобы запустить сервер в режиме отладки (разработки)!
Затем вы вводите в терминале следующее, чтобы запустить его:
$ node index.js
Результат этого будет выглядеть следующим образом:
Создание конечных точек API todo
Создайте файл /controllers/api.js
, чтобы определить конечные точки вашего приложения.
exports.install = function () { // Http_method Uri *Schema_name --> action_name ROUTE('GET /todos/list/ *Todos --> list'); ROUTE('POST /todos/create/ *Todos --> create'); ROUTE('GET /todos/toggle/{id}/ *Todos --> done'); }
Создайте схему и действия для конечных точек приложения.
Создайте файл /schemas/todos.js
для определения вашей схемы Todos с тремя действиями, в которых мы создадим соответствующий
NEWSCHEMA('Todos', function(schema) { schema.action('list', { name: 'List todos', query: 'search:String', action: async function($) { // get list from redis cache if exists. Otherwise, get it form database } }); schema.action('create', { name: 'Create new todo', input: '*name:String,description:String,isdone:Boolean', action: function($, model) { // insert action and publish } }); schema.action('done', { name: 'Toggle complete/uncomplete status of todo', params: '*id:String', action: function($) { // toggle task complete/uncomplete and publish } }) });
Кэширование данных
Кэшировать данные в Redis Server в Total.js очень просто. Возьмем пример с действием list
. Пробуем брать данные из кеша Redis, если данные не найдены то берем из базы. Но мы не забываем помещать эти данные в кеш Redis. Таким образом, мы можем обновить наше действие list
в /schemas/todos.js
следующим образом:
schema.action('list', { name: 'List todos', query: 'search:String', action: async function($) { var list = await MAIN.redis.get('todoslist'); if (list) $.callback(JSON.parse(list)); else { var builder = DB().find('nosql/todos'); builder.autoquery($.query,'id:String,name:String,description:String,isdone:Boolean,dtcreated:Date,dtupdated:Date', 'dtcreated_desc', 100); $.query.search && builder.search('search', $.query.search); builder.where('isremoved', false); builder.sort('dtcreated', true); builder.callback(function(err, response) { if (err) { $.invalid(err.toString()); return; } MAIN.redis.set('todoslist', JSON.stringify(response)); $.callback(response); }) } } });
Интеграция Redis с платформой Total.js обеспечивает мощную комбинацию, которая может значительно повысить производительность, масштабируемость и возможности работы в реальном времени ваших веб-приложений. Функции кэширования, управления сеансами и организации очередей Redis легко интегрируются с Total.js, позволяя создавать надежные и высокопроизводительные приложения. Во второй части мы рассмотрим, как создать несколько приложений Total.js, которые взаимодействуют друг с другом благодаря системе связи Redis Pub/Sub
. Мы берем несколько базовых примеров, но вы можете точно настроить конфигурацию Redis в соответствии со своими конкретными требованиями и оптимизировать ее использование в своем проекте Total.js. Экспериментируйте, исследуйте и используйте потенциал Redis для создания исключительных веб-приложений с Total.js во главе.
Удачного кодирования!