■ ConnectionMultiplexer 클래스를 사용해 재사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using System.Threading; using StackExchange.Redis; Lazy<ConnectionMultiplexer> multiplexerLazy = new Lazy<ConnectionMultiplexer> ( () => ConnectionMultiplexer.Connect("192.168.29.197:6380"), LazyThreadSafetyMode.ExecutionAndPublication ); IDatabase database1 = multiplexerLazy.Value.GetDatabase(1); IDatabase database2 = multiplexerLazy.Value.GetDatabase(2); |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 KeyTimeToLive 메소드를 사용해 키의 남은 유효 시간을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); TimeSpan? ttl = database.KeyTimeToLive("key1"); Console.WriteLine(ttl); |
※ 패키지 설치 :
더 읽기
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용시 SSL을 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer =ConnectionMultiplexer.Connect("192.168.29.197:6380,ssl=True"); Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용시 SSL을 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConfigurationOptions options = new ConfigurationOptions { EndPoints = { { "192.168.29.197", 6380 } }, Ssl = true, SyncTimeout = 5000 }; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(options); Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용시 관리자 모드를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379,allowAdmin=True,connectTimeout=60000"); Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용시 관리자 모드를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConfigurationOptions options = new ConfigurationOptions { EndPoints = { { "192.168.29.197", 6379 } }, AllowAdmin = true, SyncTimeout = 5000 }; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(options); Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis
■ IServer 인터페이스의 ConfigGet 메소드를 사용해 서버 구성을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using System; using System.Collections.Generic; using StackExchange.Redis; string serverAddress = "192.168.29.197:6379"; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect($"{serverAddress},allowAdmin=true"); IServer server = multiplexer.GetServer(serverAddress); KeyValuePair<string, string>[] keyValuePairArray = server.ConfigGet("*"); foreach(KeyValuePair<string, string> keyValuePair in keyValuePairArray) { Console.WriteLine("{0} -> {1}", keyValuePair.Key, keyValuePair.Value); } |
※ 패키지 설치 : StackExchange.Redis
■ IServer 인터페이스의 Info 메소드를 사용해 서버 정보를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
using System; using System.Collections.Generic; using System.Linq; using StackExchange.Redis; string serverAddress = "192.168.29.197:6379"; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect($"{serverAddress},allowAdmin=true"); IServer server = multiplexer.GetServer(serverAddress); IGrouping<string, KeyValuePair<string, string>>[] groupingArray = server.Info(); for(int i = 0; i < groupingArray.Length; i++) { Console.WriteLine(groupingArray[i].Key); foreach(KeyValuePair<string, string> keyValuePair in groupingArray[i]) { Console.WriteLine("{0} -> {1}", keyValuePair.Key, keyValuePair.Value); } } |
※ 패키지 설치 : StackExchange.Redis
■ ITransaction 인터페이스의 Execute 메소드를 사용해 트랜잭션을 처리하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); ITransaction transaction = database.CreateTransaction(); transaction.StringSetAsync("key1", "Value1"); transaction.StringSetAsync("key2", "Value2"); transaction.StringSetAsync("key3", "Value3"); bool result = transaction.Execute(); Console.WriteLine("처리 결과 : " + result); |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 KeyExpire 메소드를 사용해 키 제한 시간을 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
using System; using System.Threading; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.StringSet("key1", "value1"); database.StringSet("key2", "value2"); string value1 = (string)database.StringGet("key1"); string value2 = (string)database.StringGet("key2"); Console.WriteLine(value1); Console.WriteLine(value2); database.KeyExpire("key1", TimeSpan.FromSeconds(1), flags : CommandFlags.FireAndForget); database.KeyExpire("key2", TimeSpan.FromSeconds(1), flags : CommandFlags.FireAndForget); Thread.Sleep(5000); value1 = (string)database.StringGet("key1"); value2 = (string)database.StringGet("key2"); Console.WriteLine(value1); Console.WriteLine(value2); |
■ IDatabase 인터페이스의 KeyDelete 메소드를 사용해 키를 제거하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.KeyDelete("key1"); database.KeyDelete("key2"); |
※ 패키지 설치 : StackExchange.Redis
■ IRedisAsync 인터페이스의 Wait 메소드를 사용해 파이프라인을 처리하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; using System.Threading.Tasks; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.StringSet("key1", "value1"); database.StringSet("key2", "value2"); Task<RedisValue> valueTask1 = database.StringGetAsync("key1"); Task<RedisValue> valueTask2 = database.StringGetAsync("key2"); RedisValue value1 = database.Wait(valueTask1); RedisValue value2 = database.Wait(valueTask2); Console.WriteLine((string)value1); Console.WriteLine((string)value2); |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 KeyRandom 메소드를 사용해 임의의 저장된 키를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); string randomKey = database.KeyRandom(); Console.WriteLine(randomKey); |
※ 패키지 설치 : StackExchange.Redis
■ IServer 인터페이스의 ClientList 메소드를 사용해 클라이언트 정보를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
using System; using StackExchange.Redis; string serverAddress = "192.168.29.197:6379"; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect($"{serverAddress},allowAdmin=true"); IServer server = multiplexer.GetServer(serverAddress); ClientInfo[] clientInfoArray = server.ClientList(); foreach(ClientInfo clientInfo in clientInfoArray) { Console.WriteLine(clientInfo.Address); } |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 StringIncrement 메소드를 사용해 문자열 값을 증가시키는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.StringIncrement("page1", flags : CommandFlags.FireAndForget); string result = database.StringGet("page1"); Console.WriteLine(result); |
※ 문자열 값을 숫자로 변환할 수
더 읽기
■ IServer 인터페이스의 LastSave 메소드를 사용해 마지막 저장 시간을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; string serverAddress = "192.168.29.197:6379"; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(serverAddress); IServer server = multiplexer.GetServer(serverAddress); DateTime lastSaveTime = server.LastSave(); Console.WriteLine(lastSaveTime); |
※ 패키지 설치 : StackExchange.Redis
■ ISubscriber 인터페이스의 Subscribe/Publish 메소드를 사용해 메시지를 구독하고 발행하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
using System; using System.Threading.Tasks; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); ISubscriber subscriber = multiplexer.GetSubscriber(); subscriber.Subscribe("message1") .OnMessage ( async channelMessage => { await Task.Delay(1000); Console.WriteLine((string)channelMessage.Message); } ); subscriber.Publish("message1", "안녕하세요."); Console.ReadKey(true); |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 HashSet/HashGetAll 메소드를 사용해 해시값을 저장하고 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.HashSet ( "hashKey1", new [] { new HashEntry("Name", "홍길동"), new HashEntry("Age" , 20 ) } ); HashEntry[] hashEntryArray = database.HashGetAll("hashKey1"); foreach(HashEntry entry in hashEntryArray) { Console.WriteLine($"{entry.Name} : {entry.Value}"); } |
※ 패키지 설치 : StackExchange.Redis
■ ISubscriber 인터페이스의 Subscribe/Publish 메소드를 사용해 메시지를 구독하고 발행하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); ISubscriber subscriber = multiplexer.GetSubscriber(); subscriber.Subscribe ( "message1", (channel, message) => { Console.WriteLine((string)message); } ); subscriber.Publish("message1", "안녕하세요."); |
※ 패키지 설치 : StackExchange.Redis
■ IServer 인터페이스의 Keys 메소드를 사용해 키를 나열하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; string serverAddress = "192.168.29.197:6379"; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect(serverAddress); IServer server = multiplexer.GetServer(serverAddress); foreach(RedisKey key in server.Keys(pattern : "*")) { Console.WriteLine(key); } |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 GetEndPoints 메소드를 사용해 엔드포인트 배열을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using System.Net; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); foreach(EndPoint endPoint in multiplexer.GetEndPoints()) { Console.WriteLine(endPoint); } |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 StringSet/StringGet 메소드를 사용해 문자열 값을 저장하고 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
using System; using System.Text; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); byte[] keyByteArray = Encoding.UTF8.GetBytes("key2" ); byte[] valueByteArray = Encoding.UTF8.GetBytes("value2"); database.StringSet(keyByteArray, valueByteArray); valueByteArray = database.StringGet(keyByteArray); Console.WriteLine(Encoding.UTF8.GetString(valueByteArray)); |
※ 패키지 설치 : StackExchange.Redis
■ IDatabase 인터페이스의 StringSet/StringGet 메소드를 사용해 문자열 값을 저장하고 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); IDatabase database = multiplexer.GetDatabase(); database.StringSet("key1", "value1"); string value = database.StringGet("key1"); Console.WriteLine(value); |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용해 데이터베이스를 접속하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197:6379"); Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis
■ ConnectionMultiplexer 클래스의 Connect 정적 메소드를 사용해 데이터베이스를 접속하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using StackExchange.Redis; ConnectionMultiplexer multiplexer = ConnectionMultiplexer.Connect("192.168.29.197"); // 디폴트 포트 사용시(6379) Console.WriteLine(multiplexer.IsConnected); |
※ 패키지 설치 : StackExchange.Redis