Skip to content

tinacms/upstash-redis-level

Repository files navigation

upstash-redis-level

An abstract-level database backed by upstash/redis.

📌 Which module should I use? What is abstract-level? Head over to the FAQ.

Usage

const { RedisLevel } = require('upstash-redis-level')
const { Redis } = require('@upstash/redis')
const db = new RedisLevel({
  redis: new Redis({
    url: process.env.KV_REST_API_URL || 'http://localhost:8079',
    token: process.env.KV_REST_API_TOKEN || 'example_token',
  }),
  debug: process.env.DEBUG === 'true' || false,
})

// Add an entry with key 'a' and value 1
await db.put('a', 1)

// Add multiple entries
await db.batch([{ type: 'put', key: 'b', value: 2 }])

// Get value of key 'a': 1
const value = await db.get('a')

// Iterate entries with keys that are greater than 'a'
for await (const [key, value] of db.iterator({ gt: 'a' })) {
  console.log(value) // 2
}

API

The API of upstash-redis-level follows that of abstract-level with three additional constructor options (see below).

db = new RedisLevel([options])

Besides abstract-level options, the optional options object may contain:

  • redis: an instance of @upstash/redis client
  • debug: a boolean to enable debug logs
  • namespace: a string to prefix all keys with. The default is level

Querying Redis Level with Redis commands

List all keys in lexicographic order

ZRANGE level:z - + BYLEX

Get value of a key

HGET level:h <key>

Install

With npm do:

npm install upstash-redis-level

Contributing

See the Contribution Guide for more details.

License

See LICENSE for more details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published