Начните использовать Redis с ASP.NET - PullRequest
22 голосов
/ 15 февраля 2011

Как начать использовать Redis база данных с ASP.NET?

Что мне следует установить и что загрузить?

Я использую Visual Studio 2008с C #.

Ответы [ 4 ]

30 голосов
/ 21 февраля 2011

FYI, оба:

- это веб-приложения ASP.NET с открытым исходным кодом, которые используют только клиент ServiceStack.Redis C #.

Вот пример о том, как использовать контейнер Inversion of control (IoC) для регистрации пула подключений клиента Redis и сопровождающего его IRepository с IoC:

//Register any dependencies you want injected into your services
container.Register<IRedisClientsManager>(c => new PooledRedisClientManager());
container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));

Примечание: если выВы только начинаете работу с клиентом, я рекомендую вам ознакомиться с клиентской вики C # , особенно Проектирование приложения Simple Blog с руководством по Redis *.

16 голосов
/ 18 февраля 2011

Вы можете получить доступ к экземпляру Redis из C # с помощью драйвера servicestack.Вы можете скачать код из его репозитория GitHub .

5 голосов
/ 07 ноября 2014

Рекомендую StackExchage.Redis Клиентская библиотека для ASP.net. Рекомендовано Microsoft, как вы видите в этой статье MSDN . это бесплатно и с открытым исходным кодом. Также посмотрите полный список доступных клиентов Redis: http://redis.io/clients

А для установки Redis и использования клиента на платформах Windows. Загрузка и установка Служба Redis (серверные и клиентские инструменты с документацией) Написано Microsoft.

2 голосов
/ 16 января 2017

Взято из Интеграция Redis в ваш проект Asp.Net MVC :
Первое, что нужно сделать, это установить Redis на свой компьютер. Он создан для Linux, но имеет простую установку для Windows. Фактически, у Microsoft есть реализация с открытым исходным кодом, где вы можете скачать установку с этой страницы GitHub .

Установите StackExchange.Redis из Nuget.
Тогда вы можете использовать его так:

public class RedisCache : ICache
{
private readonly ConnectionMultiplexer redisConnections;

public RedisCache()
{
    this.redisConnections = ConnectionMultiplexer.Connect("localhost");
}
public void Set<T>(string key, T objectToCache) where T : class
{
    var db = this.redisConnections.GetDatabase();
    db.StringSet(key, JsonConvert.SerializeObject(objectToCache
                , Formatting.Indented
                , new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                    PreserveReferencesHandling = PreserveReferencesHandling.Objects
                }));
}


public T Get<T>(string key) where T :class
{
    var db = this.redisConnections.GetDatabase();
    var redisObject = db.StringGet(key);
    if (redisObject.HasValue)
    {
        return JsonConvert.DeserializeObject<T>(redisObject
                , new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
                    PreserveReferencesHandling = PreserveReferencesHandling.Objects
                });
    }
    else
    {
        return (T)null;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...