Data Structure Generator

The gen command generates Redis data structures including hashes, strings, lists, sets, sorted sets, streams, JSON, and TimeSeries.

riotx gen [OPTIONS]

To show the full usage, run:

riotx gen --help

Basic Examples

Generate 1 million hashes
riotx gen --count 1m --type hash
Generate 10,000 JSON documents
riotx gen --count 10k --type json
Generate multiple data types
riotx gen --count 100k --type hash json string set

Options

Key Configuration

--keyspace <str>

Keyspace prefix for generated keys (default: gen).

--key-range <range>

Range of key IDs to generate in the form start-end (default: 1-1000).

--key-separator <str>

Separator between keyspace and key ID (default: :).

Generate keys with custom keyspace
riotx gen --count 1000 --keyspace user --type hash

This creates keys like user:1, user:2, etc.

Data Structure Types

--type <type>

Types of data structures to generate. Can specify multiple types.

Supported types: hash, json, list, set, stream, string, timeseries, zset

Default: all types.

TTL Configuration

--expiration <range>

TTL in seconds for generated keys. Specify a range like 60-3600 for random TTL between 1 minute and 1 hour.

Generate keys with expiration
riotx gen --count 1000 --type hash --expiration 3600

Hash Options

--hash-size <range>

Number of fields in hashes (default: 1-10).

--hash-value <range>

Length of hash field values (default: 100-1000).

Generate hashes with 50 fields
riotx gen --count 1000 --type hash --hash-size 50 --hash-value 100-500

JSON Options

--json-size <range>

Number of fields in JSON documents (default: 1-10).

--json-value <range>

Length of JSON field values (default: 100-1000).

String Options

--string-value <range>

Length of string values (default: 100-1000).

List Options

--list-size <range>

Number of elements in lists (default: 1-100).

--list-value <range>

Length of list element values (default: 1-100).

Set Options

--set-size <range>

Number of elements in sets (default: 1-100).

--set-value <range>

Length of set element values (default: 1-100).

Sorted Set Options

--zset-size <range>

Number of elements in sorted sets (default: 1-100).

--zset-value <range>

Length of sorted set element values (default: 1-100).

--zset-score <range>

Score range for sorted set elements (default: 0-100).

Stream Options

--stream-size <range>

Number of messages in streams (default: 1-100).

--stream-fields <range>

Number of fields per stream message (default: 1-10).

--stream-value <range>

Length of stream field values (default: 100-1000).

TimeSeries Options

--ts-size <range>

Number of samples in timeseries (default: 1-100).

--ts-time <timestamp>

Start time for samples, e.g. 2007-12-03T10:15:30.00Z (default: now).

Index Creation

--index <name>

Create a RediSearch index that matches the generated hash or JSON data.

Generate hashes with a search index
riotx gen --count 100k --type hash --index myindex

Database Options

--flushdb

Perform a FLUSHDB before generating data. Use with caution.

Flush database and generate fresh data
riotx gen --count 1m --type hash --flushdb