C\#에서 redis 를 어떻게 사용 합 니까?

3309 단어 c#쓰다redis
redis 는 비 관계 형 고성능 키-value 데이터베이스 입 니 다.Memcached 와 유사 합 니 다.저 장 된 value 형식 이 상대 적 으로 많 습 니 다.string(문자열),list(링크),set(집합),zset(sorted set-질서 있 는 집합)과 hash(해시 형식)를 포함 합 니 다.이러한 데이터 형식 은 push/pop,add/remove 및 교차 집합 과 차 집합 및 더욱 풍부 한 조작 을 지원 하 며,이러한 조작 은 모두 원자 적 이다.이 를 바탕 으로 redis 는 다양한 방식 의 정렬 을 지원 합 니 다.memcached 와 마찬가지 로 효율 을 확보 하기 위해 데 이 터 는 모두 메모리 에 캐 시 되 어 있 습 니 다.다른 것 은 redis 가 주기 적 으로 업 데 이 트 된 데 이 터 를 디스크 에 기록 하거나 수정 작업 을 추가 기록 파일 에 기록 하 며 이 를 바탕 으로 master-slave(주종)동기 화 를 실현 하 는 것 이다.
C\#에서 redis 를 어떻게 사용 하 는 지 소개 합 니 다.
1,참조 StackExchange.Redis

2.redis 도구 류

public class RedisHelper
  {
    private static ConnectionMultiplexer multiplexer { get; set; }
    static RedisHelper()
    {
    }

    public static IDatabase GetDataBase(int dbNums = 1)
    {
      if (multiplexer == null)
        Init();
      return multiplexer.GetDatabase(dbNums);
    }

    public static ConnectionMultiplexer GetMultiplexer()
    {
      if (multiplexer == null)
        Init();

      return multiplexer;
    }
    public static bool IsConnect(string key, IDatabase redisDb, string module, string action)
    {
      if (!redisDb.IsConnected(key))
      {
        LogHelper.Error("current redis is not connect", null, module, action);
        return false;
      }
      return true;
    }

    private static void Init()
    {
      try
      {
        var configString = ConfigurationManager.AppSettings["RedisConfigString"];
        ConfigurationOptions options = ConfigurationOptions.Parse(configString);
        multiplexer = ConnectionMultiplexer.Connect(options);
      }
      catch (Exception ex)
      {
        LogHelper.Error(ex, "RedisHelper", "Static");
      }
    }
  }
3.상용 조작

IDatabase _cacheClient = RedisHelper.GetDataBase(4);
//key    
_cacheClient.KeyExists("key")
//  key-vaule
_cacheClient.StringSet("key", "value");
//      
_cacheClient.KeyExpire("key", TimeSpan.FromMinutes(1));
//  
_cacheClient.KeyDelete("key");
4.redis 도 메시지 대기 열 을 만 들 수 있 고 실현 도 간단 하지만 단점 도 뚜렷 하 므 로 추천 하지 않 습 니 다.

//  
ConnectionMultiplexer multiplexer = RedisHelper.GetMultiplexer();
ISubscriber sub = multiplexer.GetSubscriber();
var queue = sub.Publish("channel name", "message");

//  
ConnectionMultiplexer multiplexer = RedisHelper.GetMultiplexer();
ISubscriber sub = multiplexer.GetSubscriber();
sub.Subscribe("channel name", (channel, message) =>
{
  //TODO
});
5.카운터,재 고 를 순식간에 죽 이 고 앞 다 투어 구 매 하 는 데 사용

//  ,       0
long num = _cacheClient.StringIncrement("key", 0)

//  ,              

//    
_cacheClient.StringIncrement("key", 2)
이상 은 C\#에서 redis 를 어떻게 사용 하 는 지 에 대한 상세 한 내용 입 니 다.C\#redis 를 사용 하 는 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기