Real-time Video Analytics

Real-time video analytics can be used for a wide range of use cases across industries:

  • Retail: monitor foot traffic within a store to optimize product placement, enhance loss prevention measures, or display personalized digital promotions
  • Financial services: boost security surveillance in bank branches, or display personalized digital promotions at ATMs
  • Manufacturing: detect product defects on the production line before they affect an entire batch, or identify when factory workers are missing safety gear

This project demonstrates a deployment of the RedisEdge stack that provides real-time analytics of video streams. It uses Redis Streams, RedisGears, RedisAI, and RedisTimeSeries to count the number of people in a video.

Database Synchronization with Persistence

When synchronizing databases, ensure data persistence and availability of captured data changes while mitigating the performance penalty associated with shipping them to the target database.

This example shows how to use the Write Behind pattern to map data from Redis Hashes to MySQL tables. The recipe maps all Redis Hashes with the prefix person: to the MySQL table persons, with being the primary key and mapped to the person_id column. Similarly, it maps all Hashes with the prefix car: to the cars table.

Time-series Prediction

This demo for RedisGears uses fbprophet for timeseries prediction in anomaly detection.

Improved Content Delivery

Content delivery performance is essentially about latency and speed. While content delivery networks (CDNs) offer image optimization solutions and the shortest hop to the user, additional byte savings can be achieved through optimizing memory usage of the image. Doing so saves data on the backend, in client’s devices, and improves delivery performance since fewer bytes require fewer network packets to be transmitted.

This example illustrates how to automatically process, transform, and model different types of data using serverless content delivery optimizer logic with Redis and RedisGears.

Read the 8-minute write-up.

Modern Multi-Model Applications

Modern applications are increasingly sophisticated, and often rely on multiple databases to deliver expected results. Retrieving data from each database introduces latency, impacting user experience. Using a database that supports multi-models natively dramatically improves application performance.

This step-by-step demo starts from Redis Hash and dynamically adds new models using Redis Modules. The accompanying video illustrates retrieving and synchronizing data across multiple databases to “find the restaurants my friends recommended in my 3-mile radius” and sort by visitor load.

“Facemark” Facial Recognition

This application was developed as a no-touch alternative to tracking attendance in classrooms, previously done through fingerprinting. It can be applied to any situation where facial recognition is needed. Built using the RedisEdge stack, it is able to process the image data in real time, and easily scales to analyze large groups of people.

Read more

“RediSafe” Image Detection

According to the CDC, during the COVID-19 pandemic, all healthcare workers must follow strict guidelines and protocols from OSHA regarding wearing PPE. N95 masks are the PPE most often used to control exposure to infections transmitted via the airborne route. Therefore, checking the medical staff’s PPE safety protocol is especially crucial during this pandemic.

This web-based app analyzes video streams and applies a mask detection model to check that the medical staff is following established safety protocols.

“intelliSchool” Student Evaluation Tool

The recent shift to virtual learning, for everyone from K-12 to higher education, has forced students, parents, and teachers to change how they approach learning. One area that is still evolving is how to evaluate student performance and achievement. Innovations in both learning and evaluation methods are needed.

This project includes two components. The first is aimed at students—a browser plug-in that transcribes notes from videos and auto-generates quizzes to check comprehension. The second is aimed at educators—a web-based application to upload courses, generate quizzes, and answer student questions.

Read more

“Voluntree” Event Organization Tool

Many non-profit organizations recruit volunteers through social media. However, managing the lists of volunteers for each event is often done manually, and communicating updates via social media is inefficient. A better way of organizing volunteer activities is needed.

This application automates a number of steps in the process of recruiting and confirming volunteers for events. It also enables organizers to easily communicate with confirmed volunteers to provide timely updates.

“SpecKart” Blockchain Ecommerce Platform

This application is a blockchain-based ecommerce platform for buying and selling SPEC tokens without a third party. Since every transaction on a blockchain platform triggers a fee, this application abstracts common, low-value tasks from the platform and performs them within Redis in order to avoid unnecessary fees.

Real-Time Fraud Detection

Internet fraud is evolving. The more you try to stop abuse, the more complex methods fraudsters use to trick you. The idea of a real-time fraud detector is not new, but getting it right is a major challenge.

This project identifies different types of fraud in an ad network, then publishes the data for further analysis and visualization.

Read more

Real-time Indexing

In e-commerce, a user, on the scale of an application, visits infrequently. Keeping indexes constantly ready for things like past purchases is a waste if the users will only look at this while they are logged in. This shows how to solve the problem by only keeping track of past purchases when users are actually logged into the system. When a user times out, we remove the index and build it in real-time and on-the-fly.

This demo shows a simple e-commerce platform that implements a purchase history that is created on the fly using RediSearch. The abstract concept of ephemeral indexing becomes very visible if run in conjunction with Redis MONITOR.

Redis helps you build

You know that the world’s most loved database is the best caching solution out there. But if that’s all you’re using Redis for, you’re missing out on a set of powerful tools that are already in your hands.

Build it better with Redis
When you build with Redis, you build performance, scalability, security, and growth into your app. Understand the building blocks that make up the Redis platform, from core elements to add-on modules, and how to use them together to build awe-inspiring applications on the fastest database on the planet.
Table of Redis Elements
  • SG SG
    Strings Strings
    Data Structure
  • BM BM
    Bitmaps Bitmaps
    Data Structure
  • BF BF
    Bit Field Bit Field
    Data Structure
  • H H
    Hashes Hashes
    Data Structure
  • Se Se
    Search Search
    Module
  • Js Js
    JSON JSON
    Module
  • SG Strings
    One of the most versatile of Redis’ building blocks, Redis Strings is a binary—safe data structure. It can store any kind of data—a string, integer, floating point value, JPEG image, serialized Ruby object, or anything else you want it to carry. Operate on a whole string or parts, and increment or decrement integers and floats.
    BM Bitmaps
    Redis Bitmaps is a compact data structure to store binary logic and states. It provides commands to fetch and set a bit value at a given position, and perform AND, OR, XOR, and NOT operations between multiple bitmap keys.
    BF Bit Field
    Bitfields offer an efficient, compact way to implement multiple counters in a single array. It allows incrementing and decrementing counters at a given position, and flags overflow when the counter reaches its upper limit.
    H Hashes
    Similar to documents in a document store or rows in a relational database, the Redis Hashes structure stores a set of field-value pairs. It provides the ability to add, fetch, or remove individual items and fetch the entire hash, or use one or more fields in the hash as a counter.
    Se Search
    RediSearch is a fast search engine that runs on your Redis dataset and allows you to query data that has just been indexed, to answer complex queries. It can be used as a secondary index for datasets hosted on other datastores, as a fast text search or auto-complete engine, and as a search engine that powers other modules such as RedisGraph and RedisTimeSeries.
    Integrated in Redis Enterprise Learn more
    Js JSON
    RedisJSON makes JSON a native data structure in Redis. It’s tailored for fast, efficient, in-memory manipulation of JSON documents at high speed and volume. As a result, you can store your document data in a hierarchical, tree-like format and scale and query it efficiently, which significantly improves performance compared to existing disk-based document-database solutions.
    Integrated in Redis Enterprise Learn more
  • L L
    Lists Lists
    Data Structure
  • S S
    Sets Sets
    Data Structure
  • SS SS
    Sorted Sets Sorted Sets
    Data Structure
  • Ts Ts
    Timeseries Timeseries
    Module
  • Bl Bl
    Bloomfilter Bloomfilter
    Module
  • Ai Ai
    AI AI
    Module
  • L Lists
    Redis Lists holds collections of string elements sorted according to their order of insertion. Push or pop items from both ends, trim based on offsets, read individual or multiple items, or find or remove items by value and position. You can also make blocking calls for asynchronous message transfers.
    S Sets
    Redis Sets data structure stores a unique set of members. With Sets, you can add, fetch, or remove members, check membership, or retrieve a random member. You can also perform set operations such as intersection, union, and set difference and compute set cardinality.
    SS Sorted Sets
    Redis Sorted Sets contain a unique set of members ordered by floating-point scores. As with Sets, you can add, fetch, or remove individual members and perform set operations such as union, intersection, set difference, and compute cardinality. Furthermore, you can also query the set based on score or member value, aggregate, filter, and order results.
    Ts Timeseries
    RedisTimeSeries is significantly faster than any other time-series database and natively supports capabilities like automatic downsampling, aggregations, labeling and search, compression, and enhanced multi-range queries. Built-in connectors to popular monitoring tools like Prometheus and Grafana enable the extraction of data into useful formats for visualization and monitoring.
    Integrated in Redis Enterprise Learn more
    Bl Bloomfilter
    The Redis implementation for Bloom filters and other probabilistic data structures is faster by an order of magnitude than other probabilistic implementations. When deployed over Redis Enterprise, RedisBloom enjoys the linear scale, single-digit-seconds failover time, and durability, with easy provisioning and built-in monitoring capabilities.
    Integrated in Redis Enterprise Learn more
    Ai AI
    RedisAI is an AI serving engine for real-time applications. It allows you to run your inference engine where the data lives, decreasing latency and increasing simplicity coupled with the core Redis Enterprise features. It includes built-in support for models trained by major platforms like TensorFlow, PyTorch, and ONNXRuntime.
  • G G
    Geospatial Geospatial
    Data Structure
  • HL HL
    Hyperloglog Hyperloglog
    Data Structure
  • SM SM
    Streams Streams
    Data Structure
  • Gr Gr
    Graph Graph
    Module
  • Ge Ge
    Gears Gears
    Module
  • Is Is
    Insight Insight
    Module
  • G Geospatial
    Geospatial indexes provide an extremely efficient and simple way to manage and use geospatial data in Redis. You can add unique items with latitude and longitude, compute the distance between objects, and find members within a given radius range from a location.
    HL Hyperloglog
    Redis HyperLogLog is a probabilistic data structure used to count unique values (set cardinality) at a constant memory size. You can add and count a large number of unique items with memory efficiency, and merge two or more HyperLogLog data structures into one.
    SM Streams
    Redis Streams is a powerful data structure for managing high-velocity data streams (like a message queue). With out-of-the-box partitioning, replication, and persistence, it can capture and process millions of data points per second at sub-millisecond latency. Redis Streams is based on an efficient radix-tree implementation, which makes the range and lookup queries extremely fast. It connects producers and consumers with asynchronous calls and supports consumer groups.
    Gr Graph
    RedisGraph is a queryable Property Graph database that uses adjacency matrices—rather than lists—to store and represent graphs, making linear algebra calculations more accessible and efficient for anybody who may need them, without all of the disadvantages that have historically accompanied adjacency matrices. Transforming sparse matrices into graphs makes it possible to execute urgent calculations in real time.
    Integrated in Redis Enterprise Learn more
    Ge Gears
    RedisGears is a dynamic framework that enables developers to write and execute functions that implement data flows in Redis, while abstracting away the data’s distribution and deployment. These capabilities enable efficient data processing using multiple models in Redis with infinite programmability, while remaining simple to use in any environment.
    Is Insight
    RedisInsight is a browser-based management interface for your Redis deployment that enables you to easily analyze and optimize memory used by your Redis data, monitor health, and manage your Redis cluster. Identify common latency issues, and perform routine administrative tasks on your Redis server.
  • SG SG
    Strings Strings
    Data Structure
  • BM BM
    Bitmaps Bitmaps
    Data Structure
  • SG Strings
    One of the most versatile of Redis’ building blocks, Redis Strings is a binary—safe data structure. It can store any kind of data—a string, integer, floating point value, JPEG image, serialized Ruby object, or anything else you want it to carry. Operate on a whole string or parts, and increment or decrement integers and floats.
    BM Bitmaps
    Redis Bitmaps is a compact data structure to store binary logic and states. It provides commands to fetch and set a bit value at a given position, and perform AND, OR, XOR, and NOT operations between multiple bitmap keys.
  • BF BF
    Bit Field Bit Field
    Data Structure
  • H H
    Hashes Hashes
    Data Structure
  • BF Bit Field
    Bitfields offer an efficient, compact way to implement multiple counters in a single array. It allows incrementing and decrementing counters at a given position, and flags overflow when the counter reaches its upper limit.
    H Hashes
    Similar to documents in a document store or rows in a relational database, the Redis Hashes structure stores a set of field-value pairs. It provides the ability to add, fetch, or remove individual items and fetch the entire hash, or use one or more fields in the hash as a counter.
  • L L
    Lists Lists
    Data Structure
  • S S
    Sets Sets
    Data Structure
  • L Lists
    Redis Lists holds collections of string elements sorted according to their order of insertion. Push or pop items from both ends, trim based on offsets, read individual or multiple items, or find or remove items by value and position. You can also make blocking calls for asynchronous message transfers.
    S Sets
    Redis Sets data structure stores a unique set of members. With Sets, you can add, fetch, or remove members, check membership, or retrieve a random member. You can also perform set operations such as intersection, union, and set difference and compute set cardinality.
  • SS SS
    Sorted Sets Sorted Sets
    Data Structure
  • G G
    Geospatial Geospatial
    Data Structure
  • SS Sorted Sets
    Redis Sorted Sets contain a unique set of members ordered by floating-point scores. As with Sets, you can add, fetch, or remove individual members and perform set operations such as union, intersection, set difference, and compute cardinality. Furthermore, you can also query the set based on score or member value, aggregate, filter, and order results.
    G Geospatial
    Geospatial indexes provide an extremely efficient and simple way to manage and use geospatial data in Redis. You can add unique items with latitude and longitude, compute the distance between objects, and find members within a given radius range from a location.
  • HL HL
    Hyperloglog Hyperloglog
    Data Structure
  • SM SM
    Streams Streams
    Data Structure
  • HL Hyperloglog
    Redis HyperLogLog is a probabilistic data structure used to count unique values (set cardinality) at a constant memory size. You can add and count a large number of unique items with memory efficiency, and merge two or more HyperLogLog data structures into one.
    SM Streams
    Redis Streams is a powerful data structure for managing high-velocity data streams (like a message queue). With out-of-the-box partitioning, replication, and persistence, it can capture and process millions of data points per second at sub-millisecond latency. Redis Streams is based on an efficient radix-tree implementation, which makes the range and lookup queries extremely fast. It connects producers and consumers with asynchronous calls and supports consumer groups.
  • Se Se
    Search Search
    Module
  • Js Js
    JSON JSON
    Module
  • Se Search
    RediSearch is a fast search engine that runs on your Redis dataset and allows you to query data that has just been indexed, to answer complex queries. It can be used as a secondary index for datasets hosted on other datastores, as a fast text search or auto-complete engine, and as a search engine that powers other modules such as RedisGraph and RedisTimeSeries.
    Integrated in Redis Enterprise Learn more
    Js JSON
    RedisJSON makes JSON a native data structure in Redis. It’s tailored for fast, efficient, in-memory manipulation of JSON documents at high speed and volume. As a result, you can store your document data in a hierarchical, tree-like format and scale and query it efficiently, which significantly improves performance compared to existing disk-based document-database solutions.
    Integrated in Redis Enterprise Learn more
  • Ts Ts
    Timeseries Timeseries
    Module
  • Bl Bl
    Bloomfilter Bloomfilter
    Module
  • Ts Timeseries
    RedisTimeSeries is significantly faster than any other time-series database and natively supports capabilities like automatic downsampling, aggregations, labeling and search, compression, and enhanced multi-range queries. Built-in connectors to popular monitoring tools like Prometheus and Grafana enable the extraction of data into useful formats for visualization and monitoring.
    Bl Bloomfilter
    The Redis implementation for Bloom filters and other probabilistic data structures is faster by an order of magnitude than other probabilistic implementations. When deployed over Redis Enterprise, RedisBloom enjoys the linear scale, single-digit-seconds failover time, and durability, with easy provisioning and built-in monitoring capabilities.
    Integrated in Redis Enterprise Learn more
  • Ai Ai
    AI AI
    Module
  • Gr Gr
    Graph Graph
    Module
  • Ai AI
    RedisAI is an AI serving engine for real-time applications. It allows you to run your inference engine where the data lives, decreasing latency and increasing simplicity coupled with the core Redis Enterprise features. It includes built-in support for models trained by major platforms like TensorFlow, PyTorch, and ONNXRuntime.
    Gr Graph
    RedisGraph is a queryable Property Graph database that uses adjacency matrices — rather than lists — to store and represent graphs, making linear algebra calculations more accessible and efficient for anybody who may need them, without all of the disadvantages that have historically accompanied adjacency matrices. Transforming sparse matrices into graphs makes it possible to execute urgent calculations in real time.
    Integrated in Redis Enterprise Learn more
  • Ge Ge
    Gears Gears
    Module
  • Is Is
    Insight Insight
    Module
  • Ge Gears
    RedisGears is a dynamic framework that enables developers to write and execute functions that implement data flows in Redis, while abstracting away the data’s distribution and deployment. These capabilities enable efficient data processing using multiple models in Redis with infinite programmability, while remaining simple to use in any environment.
    Is Insight
    RedisInsight is a browser-based management interface for your Redis deployment that enables you to easily analyze and optimize memory used by your Redis data, monitor health, and manage your Redis cluster. Identify common latency issues, and perform routine administrative tasks on your Redis server.
Begin your journey to rediscover Redis
Redis modules are available in the cloud in the AWS/Mumbai region only at this time, but you can download the modules here.