All Projects → The-Anton → Redis-Monitoring

The-Anton / Redis-Monitoring

Licence: other
Solar power data ingestion and a monitoring dashboard using Redis as a primary database.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
lua
6591 projects

Projects that are alternatives of or similar to Redis-Monitoring

cache redis node
Exemplo de utilização de Cache, com Redis, Mongo, nodejs
Stars: ✭ 30 (+87.5%)
Mutual labels:  redis-client
java-redis-client
OpenTracing Instrumentation for Redis Client
Stars: ✭ 31 (+93.75%)
Mutual labels:  redis-client
redis-developer.github.io
The Home of Redis Developers
Stars: ✭ 28 (+75%)
Mutual labels:  redis-client
SmartRedis
SmartSim Infrastructure Library Clients.
Stars: ✭ 37 (+131.25%)
Mutual labels:  redis-client
aioredis-cluster
Redis Cluster support extension for aioredis
Stars: ✭ 21 (+31.25%)
Mutual labels:  redis-client
simple redis
Simple and resilient redis client for rust.
Stars: ✭ 21 (+31.25%)
Mutual labels:  redis-client
swift-nio-redis
A high performance Redis protocol (RESP) implementation for SwiftNIO
Stars: ✭ 27 (+68.75%)
Mutual labels:  redis-client
openredir
redirect file open operations via LD_PRELOAD
Stars: ✭ 23 (+43.75%)
Mutual labels:  lua-script
TTS-Codenames
A LUA script for Codenames on Tabletop Simulator for Steam.
Stars: ✭ 25 (+56.25%)
Mutual labels:  lua-script
cpp redis
C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform
Stars: ✭ 506 (+3062.5%)
Mutual labels:  redis-client
node-redis-connection-pool
A node.js connection manager for Redis
Stars: ✭ 52 (+225%)
Mutual labels:  redis-client
CloudStructures
Redis Client based on StackExchange.Redis.
Stars: ✭ 124 (+675%)
Mutual labels:  redis-client
jimhttp
A library collection and web microframework
Stars: ✭ 25 (+56.25%)
Mutual labels:  redis-client
redis
efficient client ⚡️
Stars: ✭ 70 (+337.5%)
Mutual labels:  redis-client
spring-redisearch
Provides support for RediSearch in Spring
Stars: ✭ 31 (+93.75%)
Mutual labels:  redis-client
JRediSearch
Java Client for RediSearch
Stars: ✭ 133 (+731.25%)
Mutual labels:  redis-client
freeswitch-asr
TTS and ASR module with auto Voice Active Detecting supported for Freeswitch. I build it for Nature sound interactive, With the embedded LUA engine we could easly build a Freeswtich application like this.
Stars: ✭ 36 (+125%)
Mutual labels:  lua-script
node-cache-manager-ioredis
Redis store for node-cache-manager using IORedis.
Stars: ✭ 47 (+193.75%)
Mutual labels:  redis-client
WeihanLi.Redis
RedisExtensions for StackExchange.Redis, Cache/Redlock/Counter/RateLimiter/Rank/RedisEventBus
Stars: ✭ 46 (+187.5%)
Mutual labels:  redis-client
rueidis
A Fast Golang Redis RESP3 client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, RedisAI, RedisGears, etc.
Stars: ✭ 422 (+2537.5%)
Mutual labels:  redis-client

Redis-Monitoring

Vue.JS Node.JS Redis Lua Jest

Introduction

The application is a solar power data ingestion and monitoring dashboard.

We refer to each solar installation as a site, and each site is fitted with a network smart meter. The meter reports how much energy the site uses and how much it generates on a minute-by-minute basis.

In application's front end, it displays a map showing all of the solar sites. The search bar allows us to find sites close to a given latitude/longitude coordinate. For each site, we can view recent energy data uploaded from the meter.

We can also see which sites have the greatest and least capacity.

The frontend is built using Vue.JS and Node.JS for backend. The project used Redis as a primary database using node_redis as redis client.

The project also implements Lua scripting as a stored procedre for optimizing database logic and reducing network overheads.

Prerequisites

In order to start and run this application, you will need:

  • Node.js (8.9.4 or newer, we recommend using the current Long Term Stable version)
  • npm (installed with Node.js)
  • Access to a local or remote installation of Redis version 5 or newer (local preferred)
  • If you want to try the RedisTimeSeries exercises, you'll need to make sure that your Redis installation also has the RedisTimeSeries Module installed

If you're using Windows, check out the following resources for help with running Redis:

Setup

To get started:

$ npm install

Configuration

The application uses a configuration file, config.json to specify the port that it listens on plus some logging parameters and how it connects to a database.

The supplied config.json file is already set up to use Redis on localhost port 6379. Change these values if your Redis instance is on another host or port, or requires a password to connect.

{
  "application": {
    "port": 8081,
    "logLevel": "debug",
    "dataStore": "redis"
  },
  "dataStores": {
    "redis": {
      "host": "localhost",
      "port": 6379,
      "password": null,
      "keyPrefix": "ru102js"
    }
  }
}

The keyPrefix for Redis is used to namespace all the keys that the application generates or references. So for example a key sites:999 would be ru102js:sites:999 when written to Redis.

Load Sample Data

To load sample site data and sample metrics, run:

npm run load src/resources/data/sites.json flushdb

flushdb is optional, and will erase ALL data from Redis before inserting the sample data.

The application uses the key prefix ru102js by default, so you should be able to use the same Redis instance for this application and other data if necessary.

Development Workflow

In order to speed up development, you can run the application using nodemon, so that any changes to source code files cause the server to reload and start using your changes.

npm run dev

Edit code, application will hot reload on save.

If you want to run without nodemon, use:

npm start

But you will then need to stop the server and restart it when you change code.

Accessing the Front End Web Application

You should be able to see the front end solar dashboard app at:

http://localhost:8081/

Running Tests

The project is setup to use Jest for testing. To run all tests:

npm test

To run a specific suite of tests (e.g. those in tests/basic.test.js):

npm test -t basic

To run Jest continuously in watch mode, which gives you access to menus allowing you to run subsets of tests and many more options:

npm testdev

Linting

This project uses ESLint with a slightly modified version of the Airbnb JavaScript Style Guide.

  • The file .eslintrc contains a short list of rules that have been disabled for this project.
  • The file .eslintignore contains details of paths that the linter will not consider when linting the project.

To run the linter:

npm run lint

If you find it interesting pls do star this repo, it gives motivation. 🤩

Stargazers repo roster for @The-Anton/Redis-Solar

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].