[フレーム]
Docs Pricing
Login Book a meeting Try Redis

NRedisStack guide (C#/.NET)

Connect your .NET application to a Redis database

NRedisStack is the .NET client for Redis. The sections below explain how to install NRedisStack and connect your application to a Redis database.

NRedisStack requires a running Redis server. See here for Redis Open Source installation instructions.

You can also access Redis with an object-mapping client interface. See Redis OM for .NET for more information.

Install

Using the dotnet CLI, run:

dotnet add package NRedisStack

Connect and test

Add the following imports to your source file:

using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class SyncLandingExample
{
 public void Run()
 {
 var muxer = ConnectionMultiplexer.Connect("localhost:6379");
 var db = muxer.GetDatabase();
 db.StringSet("foo", "bar");
 Console.WriteLine(db.StringGet("foo")); // >>> bar
 var hash = new HashEntry[] {
 new HashEntry("name", "John"),
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 db.HashSet("user-session:123", hash);
 var hashFields = db.HashGetAll("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Sync Quick-Start
using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class AsyncLandingExample
{
 public async Task Run()
 {
 var muxer = await ConnectionMultiplexer.ConnectAsync("localhost:6379");
 var db = muxer.GetDatabase();
 await db.StringSetAsync("foo", "bar");
 string? fooResult = await db.StringGetAsync("foo");
 Console.WriteLine(fooResult); // >>> bar
 var hash = new HashEntry[] { 
 new HashEntry("name", "John"), 
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 await db.HashSetAsync("user-session:123", hash);
 var hashFields = await db.HashGetAllAsync("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Async Quick-Start

Connect to localhost on port 6379. The client supports both synchronous and asynchronous commands.

using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class SyncLandingExample
{
 public void Run()
 {
 var muxer = ConnectionMultiplexer.Connect("localhost:6379");
 var db = muxer.GetDatabase();
 db.StringSet("foo", "bar");
 Console.WriteLine(db.StringGet("foo")); // >>> bar
 var hash = new HashEntry[] {
 new HashEntry("name", "John"),
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 db.HashSet("user-session:123", hash);
 var hashFields = db.HashGetAll("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Sync Quick-Start
using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class AsyncLandingExample
{
 public async Task Run()
 {
 var muxer = await ConnectionMultiplexer.ConnectAsync("localhost:6379");
 var db = muxer.GetDatabase();
 await db.StringSetAsync("foo", "bar");
 string? fooResult = await db.StringGetAsync("foo");
 Console.WriteLine(fooResult); // >>> bar
 var hash = new HashEntry[] { 
 new HashEntry("name", "John"), 
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 await db.HashSetAsync("user-session:123", hash);
 var hashFields = await db.HashGetAllAsync("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Async Quick-Start

You can test the connection by storing and retrieving a simple string.

using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class SyncLandingExample
{
 public void Run()
 {
 var muxer = ConnectionMultiplexer.Connect("localhost:6379");
 var db = muxer.GetDatabase();
 db.StringSet("foo", "bar");
 Console.WriteLine(db.StringGet("foo")); // >>> bar
 var hash = new HashEntry[] {
 new HashEntry("name", "John"),
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 db.HashSet("user-session:123", hash);
 var hashFields = db.HashGetAll("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Sync Quick-Start
using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class AsyncLandingExample
{
 public async Task Run()
 {
 var muxer = await ConnectionMultiplexer.ConnectAsync("localhost:6379");
 var db = muxer.GetDatabase();
 await db.StringSetAsync("foo", "bar");
 string? fooResult = await db.StringGetAsync("foo");
 Console.WriteLine(fooResult); // >>> bar
 var hash = new HashEntry[] { 
 new HashEntry("name", "John"), 
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 await db.HashSetAsync("user-session:123", hash);
 var hashFields = await db.HashGetAllAsync("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Async Quick-Start

Store and retrieve a HashMap.

using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class SyncLandingExample
{
 public void Run()
 {
 var muxer = ConnectionMultiplexer.Connect("localhost:6379");
 var db = muxer.GetDatabase();
 db.StringSet("foo", "bar");
 Console.WriteLine(db.StringGet("foo")); // >>> bar
 var hash = new HashEntry[] {
 new HashEntry("name", "John"),
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 db.HashSet("user-session:123", hash);
 var hashFields = db.HashGetAll("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Sync Quick-Start
using NRedisStack;
using NRedisStack.RedisStackCommands;
using StackExchange.Redis;
public class AsyncLandingExample
{
 public async Task Run()
 {
 var muxer = await ConnectionMultiplexer.ConnectAsync("localhost:6379");
 var db = muxer.GetDatabase();
 await db.StringSetAsync("foo", "bar");
 string? fooResult = await db.StringGetAsync("foo");
 Console.WriteLine(fooResult); // >>> bar
 var hash = new HashEntry[] { 
 new HashEntry("name", "John"), 
 new HashEntry("surname", "Smith"),
 new HashEntry("company", "Redis"),
 new HashEntry("age", "29"),
 };
 await db.HashSetAsync("user-session:123", hash);
 var hashFields = await db.HashGetAllAsync("user-session:123");
 Console.WriteLine(String.Join("; ", hashFields));
 // >>> name: John; surname: Smith; company: Redis; age: 29
 }
}
C#-Async Quick-Start

Redis Open Source modules

To access Redis Open Source capabilities, use the appropriate interface like this:

IBloomCommands bf = db.BF();
ICuckooCommands cf = db.CF();
ICmsCommands cms = db.CMS();
IGraphCommands graph = db.GRAPH();
ITopKCommands topk = db.TOPK();
ITdigestCommands tdigest = db.TDIGEST();
ISearchCommands ft = db.FT();
IJsonCommands json = db.JSON();
ITimeSeriesCommands ts = db.TS();

More information

See the other pages in this section for more information and examples.

RATE THIS PAGE
Back to top ↑

On this page

AltStyle によって変換されたページ (->オリジナル) /