A high-performance async/non-blocking Redis client for Dart.
The client is well tested including UTF-8 support.
As all operations are async they return Futures for better handling of asynchronous operations.
The Redis Client API is now feature complete with support for all ADMIN tasks as well as all KEYS, LISTS, SETS, SORTED SETS and HASH collections including tests for all operations.
Follow @demisbellot for project updates.
dependencies:
redis_client: any
import "package:redis_client/redis_client.dart";
main() {
var connectionString = "localhost:6379";
RedisClient.connect(connectionString)
.then((RedisClient client) {
// Use your client here. Eg.:
client.set("test", "value")
.then((_) => client.get("test"))
.then((value) => print("success: $value"));
});
}
More examples can be found in the tests in redis_client_tests.dart.
Please look at the RedisClient API for a list of commands and usage.
The redis clients above take a single connection string containing the password, host, port and db in the following formats:
pass@host:port/db
pass@host:port
pass@host
host
null
results in the default stringlocalhost:6379/0
Valid example:
RedisClient.connect("password@localhost:6379/0");
If you're not interested in the high level RedisClient API, you can use the RedisProtocolTransformer directly.
Just include it like this:
import "package:redis_client/redis_protocol_transformer.dart";
After the v1.0 release we'll start work on implementing the remaining functionality:
- Transactions, Pub/Sub, Lua/Scripts
Adding automatic failover support in v3.0, sharding, fast RPC direct-pipeline using the Redis wire format with node.js/C# processes
- mythz (Demis Bellot)
- financeCoding (Adam Singer)
- enyo (Matias Meno)
- bbss (Baruch Berger)
- MaxHorstmann (Max Horstmann)
- tomaszkubacki (Tomasz Kubacki)
Feedback and contributions are welcome.