Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/orleanscontrib/orleans.storageprovider.redis

A Redis implementation of the Orleans Storage Provider model. Uses the Azure Redis Cache to persist grain states.
https://github.com/orleanscontrib/orleans.storageprovider.redis

orleans orleans-storage-provider redis

Last synced: 29 days ago
JSON representation

A Redis implementation of the Orleans Storage Provider model. Uses the Azure Redis Cache to persist grain states.

Awesome Lists containing this project

README

        


Orleans.Redis

Orleans Redis Providers

1.5.x branch
[![Build status](https://ci.appveyor.com/api/projects/status/6xxnvi7rh131c9f1?svg=true)](https://ci.appveyor.com/project/OrleansContrib/orleans-storageprovider-redis)
2.x.x branch
[![Build status](https://ci.appveyor.com/api/projects/status/6xxnvi7rh131c9f1/branch/dev?svg=true)](https://ci.appveyor.com/project/OrleansContrib/orleans-storageprovider-redis/branch/dev)

[Orleans](https://github.com/dotnet/orleans) is a framework that provides a straight-forward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns.

[Redis](https://redis.io/) is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.

**Orleans.Redis** is a package that use Redis as a backend for Orleans providers. It uses the great [StackExchange.Redis](https://stackexchange.github.io/StackExchange.Redis/) library underneath.

## Installation

> PS> Install-Package Orleans.Persistence.Redis -prerelease

## Usage

Configure your Orleans-cluster.

```cs
var silo = new SiloHostBuilder()
.AddRedisGrainStorage("Redis", optionsBuilder => optionsBuilder.Configure(options =>
{
options.DataConnectionString = "localhost:6379"; // This is the deafult
options.UseJson = true;
options.DatabaseNumber = 1;
}))
.Build();
await silo.StartAsync();
```

Decorate your grain classes with the `StorageProvider` attribute.

```cs
[StorageProvider(ProviderName = "Redis")]
public class SomeGrain : Grain, ISomeGrain
```

These settings will enable the redis cache to act as the store for grains that have

* State
* Need to persist their state

## Configuration

* __DataConnectionString="..."__ (required) the connection string to your redis database (i.e. `localhost:6379`, is passed directly to StackExchange.Redis)
* __UseJson=true/false__ (optional) wether or not to persist state as a JSON string or not. Defaults to `false`
* __DatabaseNumber=1__ (optional) the number of the redis database to connect to. Defaults

## License

MIT