The Library contains the Database classes for File based states database client and server.
The states db client is always a redis client, but if the database type is file, it will communicate with a built-in redis simulator instead of a real redis db.
In the js-controller we use ioredis, the library supports all redis commands by simply calling them on the client instance, like redis.set("foo", "bar")
.
For an explanation of the commands in native redis, we refer to the redis documentation.
Currently, the following commands are supported by the simulator for states db:
The simulator supports five different namespaces:
- states (default:
io.
) - messages (default:
messagebox.
) - log (default:
log.
) - session (default:
session.
) - meta (default:
meta.
)
Command | State of integration | namespace |
---|---|---|
info | partial | independent |
quit | full | independent |
publish | full | all |
mget | full | states |
get | full | states, session, meta |
set | full | states, meta |
setex | full | states, session |
del | full | states, session |
keys | full | states |
psubscribe | full | messages, log, states, meta |
punsubscribe | full | messages, log, states |
subscribe | dummy | independent |
config | dummy | independent |
client | partial | independent |
Returns infomration about the simulator.
This will close the connection.
On publish the server will publish to all clients who have subscribed to the states, just like redis does.
mget
is used to receive multiple states from the server.
get
is used to receive a single state from the server.
set
is used to set a state to the database.
setex
is used to set a state to the database which automatically expires after a given time.
del
deletes a given state from the db.
It returns all matching keys.
Subscribes for a pattern to receive state changes.
Unsubscribes a pattern to no longer receive state changes.
Just a dummy needed to acknowledge expiring keys.
Mainly a dummy, just sends a positive response if notify-keyspace-events
request received.
Is used to handle setname
and getname
requests. setname
is used to change the logging namespace. On getname
the server will respond with the current connection name, which has been set via getname
.
The MIT License (MIT)
Copyright (c) 2014-2024 bluefox dogafox@gmail.com, Copyright (c) 2014 hobbyquaker