Logo Logo Comparison: Oracle vs Redis

Modified date: Monday, June 30, 2025

Table of Contents

General

FeatureOracleRedisDefinition
introOracle Database is a DBMS developed by Oracle Corporation.Redis (REmote DIctionary Server) is an open source, in-memory, NoSQL key/value store that is used primarily as an application cache or quick-response database.in their own words - but I reserved the rights to remove some bold claims like "the best", unless it is widely recognized.
vendorOracleRedis
initial release19802009
latested version23ai8We don't put a release date here as the software is patching frequently. So tracking it is not much useful.
supported platformsWindows, Linux, Solaris, HP-UX, AIX, z/OS

RHEL, Ubuntu, Amazon Linux

Here is the Redis Enterprise version. The open source one shall be runnable on *BSD, Linux, MacOS.
supported OS/CPU platforms
db-engines ranking17ranks from https://db-engines.com/en/ranking (06/25)
relational?

yes

Oracle also has an open source nosql database.
noIs it a relational database? (1) Most database are actually with some extensions, for example, nested data types, graph support, etc, which we usually called "multi-model". (2) Some of them are product family, meaning they have more than one database. Here we focus on the main one but explain others when needed.
open source?noyes/nomainly the engine code
licensecommercial

Tri-licensing model

Starting with Redis 8, Redis Open Source is moving to a tri-licensing model with all new Redis code contributions governed by the updated Redis Software Grant and Contributor License Agreement. After this release, contributions are subject to your choice of: (a) the Redis Source Available License v2 (RSALv2);or (b) the Server Side Public License v1 (SSPLv1); or (c) the GNU Affero General Public License v3 (AGPLv3). Redis Open Source 7.2 and prior releases remain subject to the BSDv3 clause license.
on-premise offeringyesyesif no means you can't buy "box" software from them
cloud offeringOracle Cloud and other cloud vendorsRedis Cloud
technical dochttps://docs.oracle.com/en/database/https://redis.io/docs/latest/

SQL

FeatureOracleRedisDefinition
SQL: standard complaincehighNo SQL
max SQL length

undefined

The actual limit may depends on limits of the SUT, for example, its memory/system swap settings: Oracle internally must use a malloc'ed buffer to hold the SQL string.
maximal SQL statement length
PL: mainSQL + PL/SQLmain programming lanage: most database suports SQL because SQL is a well established standard. However, each database would like to extend SQL more or less.
PL: other language supportyesPL lanaguage other than PL/SQL, like PL/Java, PL/Rust etc
SQL: query hintscompleteif it allows use query hints to guide the optimizer
SQL: explicit lockingyesLocking is usually an internal matter - so does it allow explicit locking? What levels do they support?
Triggers?yesIf support triggers
Object-Relational?some
SQL: extensionsThere are multiple open source projects to add SQL support on top of Redis. For example, RediSQL.
Extension MechanismRedis Modules API

Storage and System

FeatureOracleRedisDefinition
arch: server

C/S

Oracle has a family of databases, even with nonsql one.
C/SEmbedded or traditional C/S?
arch: run in browser?nonoIt also known as a client-side database, is a database that is stored and managed within a user's web browser, rather than on a remote server.
arch: clustering/HARAC, Data Guard
arch: in-memory supportOracle Database In-Memory option
arch: Multi-master support?yesif multi-master support?
arch: primary/read replica?yesif primary + mulitiple read replica supported
replication: sync/asyncbothCan commits wait or w/o wait for replicas to acknowledge
replication: WAL shippingyesUses write-ahead log (WAL) shipping for replication
sessions: max262143
tables: max number per databaseundefined
tables: max number of columns4096Max number of columns per table
contraints: max per columnundefined
partitions: methodsRange, List, Hash, Composite (sub-partitions supported).Supported partitioning strategies (range, list, hash, etc.).
partitions: global indexyesindex across partitions
constraints: max per database4,294,967,293
rows: max rows per tableundefinedThe actual number depends on storage etc
index: max allowed indexundefinedMax number of indices allowed per table
index: max allowable size6400Max index record size (bytes). This constraint is mainly coming from the fact of the database page size: if we exclude blob data types, database engine usally do not allow a record expand more than one page.
index: max number of fields32Max number of columns allowed in one index
partition: max allowed partitions1M-1Meta data challenge: 1M partitions just like 1M tables, system have to hold them in memory. Optimizer challenge: O(N) algorithm may lead to very long planning time if there are excessive partitions.
partition: max allowed key columns16
partition: max number of subpartitions1M-1
ACIDyes/yesfor DML and DDL
ACID: max isolation level

SI

The Snapshot Isolation (SI) implemented by Oracle allows some anomalies, including write skew. But the SI does satisfies ANSI's serializable definition.
ACID: max ANSI isolation levelSerializable
ACID: durabilityyesyes
Materialized View: support?yesno

Benchmarking

FeatureOracleRedisDefinition
any official TPC benchmarks?yesnoThe TPC benchmark includes a set of tests simulating real-world scenarios to evaluate database performance.
TPCC: most recent tpmC

8,552,523

System cost: 4,663,073 USD
TPCC: most recent submit date3/26/2013
TPCC: most recent per thread perf8352
TPCC: best tpmC

30,249,688

System cost: 30,528,863 USD
TPCC: best perf submit date12/2/2010
TPCC: best perf per thread perf2188

Tools

FeatureOracleRedisDefinition
command line clientredis-cliit means "sql client" for database supporting SQL. For embedded atabase, the client includes the server together.

Export Regulations

FeatureOracleRedisDefinition
JurisdictionUSUSWhich country controls export
ECCN5D992.cNoneAn Export Control Classification Number (ECCN) is a five-character alphanumeric code used to categorize items on the Commerce Control List (CCL) for export control purposes. Most database may fall into 5D992.c category, "mass market encryption", which means it has some ordinary encryption related code, for example, the SSL connection code.
Eligible License Exception / CCATS

NLR

NLR essentially means that a commodity has been classified within the Commodity Classification Automated Tracking System and determined to not require a BIS export license for its export.

Not required

There is no ECCN for open source software
A License Exception is an authorization that allows you to export or reexport items subject to the EAR without needing to obtain a specific export license, provided certain conditions are met. CCATS stands for Commodity Classification Automated Tracking System. The BIS assigns a CCATS number to products that it has classified under the Commerce Control List (CCL).
Encryption ComponentsTDE, SSLSSLCrypto functionality that triggers control

Internal

FeatureOracleRedisDefinition
concurrency controlMVCC
MVCC: implemented?yesif implement MVCC for concurrency control
MVCC: rollback segmentyesif uses rollback segment (RS) to store old versions. Without RS, old versions and new versions are mixed stored, then the database engine has to find a way to efficiently drop the old versions at certain point.
Implementation languageCA DBMS may use mulitple programming languages, for example, supports its stored procedure. The major programming language used to implement the engine.

Internal - Optimizer

FeatureOracleRedisDefinition
CBO?yesif it employees a cost based optimizer
frameworkSystem-RSystem-R is more like a dynamic programming, bottom up optimizer, while Cascades/Volcano gebaseerd optimizer is more like top-down optimizer.
query hints?completeif it allows use query hints to guide the optimizer

Internal - Runtime

FeatureOracleRedisDefinition
resource managementcompleteHow execution memory is allocated and limited.
support intra-parallel query?yesmeaning a single query can utilize multi hardware threads to run it
vectorizationyesSpeed ​​up OLAP queries using vectorized execution. A vectorized runtime exchange a bunch of rows between iterators, and these rows are physically sotre with column-oriented order.
iterator: join methodsall 3Hash Join (HJ), Sort-Merge Join (MJ) and Nested loop Join (NLJ) are 3 major ones

Internal - Storage Engine

FeatureOracleRedisDefinition
Page Size2K-32KThe physical disk block size for storage and I/O.
partition tablecompletePartitioning capabilities for large tables.
partition table: prunningbothAbility to eliminate partitions at query compile time and runtime
ACID: durability mechanismWALAOFHow is it implements durability. Database's classic way is write ahead logging (WAL).