Modules@robinpath/redis
redis

@robinpath/redis

0.1.4Node.jsPublic

Redis client with strings, hashes, lists, sets, pub/sub, TTL, and connection management

Redis

Redis client with strings, hashes, lists, sets, pub/sub, TTL, and connection management

Package: @robinpath/redis | Category: Database | Type: Utility

Authentication

redis.connect {"host": "localhost"}

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the redis module when you need to:

  • Get value by key -- Use redis.get to perform this operation
  • Delete key(s) -- Use redis.del to perform this operation
  • Check key exists -- Use redis.exists to perform this operation
  • Find keys by pattern -- Use redis.keys to perform this operation
  • Get key TTL -- Use redis.ttl to perform this operation

Quick Reference

FunctionDescriptionReturns
connectConnect to Redis{name, connected}
getGet value by keyValue or null
setSet key-valuetrue
delDelete key(s)Keys deleted
existsCheck key existstrue if exists
keysFind keys by patternMatching keys
ttlGet key TTLTTL in seconds
expireSet key expirationtrue if set
incrIncrement valueNew value
decrDecrement valueNew value
hgetGet hash fieldValue
hsetSet hash fieldstrue
hgetallGet all hash fieldsAll fields
hdelDelete hash fieldsFields removed
lpushPush to list headList length
rpushPush to list tailList length
lpopPop from list headValue or null
rpopPop from list tailValue or null
lrangeGet list rangeValues
llenGet list lengthLength
saddAdd to setMembers added
smembersGet set membersMembers
sismemberCheck set membershiptrue if member
sremRemove from setMembers removed
publishPublish message to channelSubscribers received
flushdbFlush current databasetrue
closeClose connectiontrue
closeAllClose all connectionstrue

Functions

connect

Connect to Redis

Module: redis | Returns: object -- {name, connected}

redis.connect {"host": "localhost"}
ParameterTypeRequiredDescription
optionsobjectYes{host, port, password, db, prefix, name}

get

Get value by key

Module: redis | Returns: any -- Value or null

redis.get "user:1"
ParameterTypeRequiredDescription
keystringYesKey
connectionstringNoConnection name

set

Set key-value

Module: redis | Returns: boolean -- true

redis.set "user:1" {"name": "Alice"} 3600
ParameterTypeRequiredDescription
keystringYesKey
valueanyYesValue
ttlnumberNoTTL in seconds
connectionstringNoConnection name

del

Delete key(s)

Module: redis | Returns: number -- Keys deleted

redis.del "user:1"
ParameterTypeRequiredDescription
keysstringYesKey or array of keys
connectionstringNoConnection name

exists

Check key exists

Module: redis | Returns: boolean -- true if exists

redis.exists "user:1"
ParameterTypeRequiredDescription
keystringYesKey
connectionstringNoConnection name

keys

Find keys by pattern

Module: redis | Returns: array -- Matching keys

redis.keys "user:*"
ParameterTypeRequiredDescription
patternstringYesGlob pattern
connectionstringNoConnection name

ttl

Get key TTL

Module: redis | Returns: number -- TTL in seconds

redis.ttl "session:abc"
ParameterTypeRequiredDescription
keystringYesKey
connectionstringNoConnection name

expire

Set key expiration

Module: redis | Returns: boolean -- true if set

redis.expire "session:abc" 3600
ParameterTypeRequiredDescription
keystringYesKey
secondsnumberYesTTL
connectionstringNoConnection name

incr

Increment value

Module: redis | Returns: number -- New value

redis.incr "counter"
ParameterTypeRequiredDescription
keystringYesKey
amountnumberNoAmount (default 1)

decr

Decrement value

Module: redis | Returns: number -- New value

redis.decr "counter"
ParameterTypeRequiredDescription
keystringYesKey
amountnumberNoAmount (default 1)

hget

Get hash field

Module: redis | Returns: any -- Value

redis.hget "user:1" "name"
ParameterTypeRequiredDescription
keystringYesHash key
fieldstringYesField
connectionstringNoConnection name

hset

Set hash fields

Module: redis | Returns: boolean -- true

redis.hset "user:1" {"name": "Alice", "age": 30}
ParameterTypeRequiredDescription
keystringYesHash key
fieldsobjectYesField-value pairs
connectionstringNoConnection name

hgetall

Get all hash fields

Module: redis | Returns: object -- All fields

redis.hgetall "user:1"
ParameterTypeRequiredDescription
keystringYesHash key
connectionstringNoConnection name

hdel

Delete hash fields

Module: redis | Returns: number -- Fields removed

redis.hdel "user:1" "age"
ParameterTypeRequiredDescription
keystringYesHash key
fieldsstringYesField(s)
connectionstringNoConnection name

lpush

Push to list head

Module: redis | Returns: number -- List length

redis.lpush "queue" "task1"
ParameterTypeRequiredDescription
keystringYesList key
valuesanyYesValue(s)
connectionstringNoConnection name

rpush

Push to list tail

Module: redis | Returns: number -- List length

redis.rpush "queue" "task1"
ParameterTypeRequiredDescription
keystringYesList key
valuesanyYesValue(s)
connectionstringNoConnection name

lpop

Pop from list head

Module: redis | Returns: string -- Value or null

redis.lpop "queue"
ParameterTypeRequiredDescription
keystringYesList key
connectionstringNoConnection name

rpop

Pop from list tail

Module: redis | Returns: string -- Value or null

redis.rpop "queue"
ParameterTypeRequiredDescription
keystringYesList key
connectionstringNoConnection name

lrange

Get list range

Module: redis | Returns: array -- Values

redis.lrange "queue" 0 -1
ParameterTypeRequiredDescription
keystringYesList key
startnumberNoStart index
stopnumberNoStop index
connectionstringNoConnection name

llen

Get list length

Module: redis | Returns: number -- Length

redis.llen "queue"
ParameterTypeRequiredDescription
keystringYesList key
connectionstringNoConnection name

sadd

Add to set

Module: redis | Returns: number -- Members added

redis.sadd "tags" ["js", "ts"]
ParameterTypeRequiredDescription
keystringYesSet key
membersanyYesMember(s)
connectionstringNoConnection name

smembers

Get set members

Module: redis | Returns: array -- Members

redis.smembers "tags"
ParameterTypeRequiredDescription
keystringYesSet key
connectionstringNoConnection name

sismember

Check set membership

Module: redis | Returns: boolean -- true if member

redis.sismember "tags" "js"
ParameterTypeRequiredDescription
keystringYesSet key
memberstringYesMember
connectionstringNoConnection name

srem

Remove from set

Module: redis | Returns: number -- Members removed

redis.srem "tags" "old"
ParameterTypeRequiredDescription
keystringYesSet key
membersanyYesMember(s)
connectionstringNoConnection name

publish

Publish message to channel

Module: redis | Returns: number -- Subscribers received

redis.publish "events" "user.created"
ParameterTypeRequiredDescription
channelstringYesChannel
messagestringYesMessage
connectionstringNoConnection name

flushdb

Flush current database

Module: redis | Returns: boolean -- true

redis.flushdb
ParameterTypeRequiredDescription
connectionstringNoConnection name

close

Close connection

Module: redis | Returns: boolean -- true

redis.close
ParameterTypeRequiredDescription
connectionstringNoConnection name

closeAll

Close all connections

Module: redis | Returns: boolean -- true

redis.closeAll
ParameterTypeRequiredDescription
(none)NoCall with no arguments

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Redis connection "..." not found. Call redis.connect first.Check the error message for details
@desc "Get and validate result"
do
  set $result as redis.get "user:1"
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate

Retrieve all items and loop through them.

@desc "Get and iterate results"
do
  set $result as redis.get "user:1"
  each $item in $result
    print $item
  end
enddo

2. Multi-step Redis workflow

Chain multiple redis operations together.

@desc "Connect, get, and more"
do
  set $r_connect as redis.connect {"host": "localhost"}
  set $r_get as redis.get "user:1"
  set $r_del as redis.del "user:1"
  print "All operations complete"
enddo

3. Safe connect with validation

Check results before proceeding.

@desc "Connect and validate result"
do
  set $result as redis.connect {"host": "localhost"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • mysql -- MySQL module for complementary functionality
  • postgres -- PostgreSQL module for complementary functionality
  • mongo -- Mongo module for complementary functionality
  • supabase -- Supabase module for complementary functionality
  • firebase -- Firebase module for complementary functionality

Versions (1)

VersionTagPublished
0.1.4latest1 months ago
Install
$ robinpath add @robinpath/redis

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.4
LicenseMIT
Unpacked Size8.1 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Category

data