garnet
222 строки · 7.1 Кб
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT license.
3
4using System;5using System.Threading.Tasks;6using StackExchange.Redis;7
8namespace GarnetClientSample9{
10/// <summary>11/// Use Garnet with StackExchange.Redis as client library12/// </summary>13public class SERedisSamples14{15readonly string address;16readonly int port;17
18public SERedisSamples(string address, int port)19{20this.address = address;21this.port = port;22}23
24public async Task RunAll()25{26await RespPingAsync();27RespPing();28SingleSetRename();29SingleSetGet();30SingleIncr();31SingleIncrBy(99);32SingleDecrBy(99);33SingleDecr("test", 5);34SingleIncrNoKey();35SingleExists();36SingleDelete();37}38
39async Task RespPingAsync()40{41using var redis = await ConnectionMultiplexer.ConnectAsync($"{address}:{port},connectTimeout=999999,syncTimeout=999999");42var db = redis.GetDatabase(0);43await db.PingAsync();44Console.WriteLine("RespPing: Success");45}46
47void RespPing()48{49using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");50var db = redis.GetDatabase(0);51db.Ping();52var cname = redis.ClientName;53Console.WriteLine("RespPing: Success");54}55
56void SingleSetRename()57{58using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");59var db = redis.GetDatabase(0);60
61string origValue = "test1";62db.StringSet("key1", origValue);63
64db.KeyRename("key1", "key2");65string retValue = db.StringGet("key2");66
67if (origValue != retValue)68Console.WriteLine("SingleSetRename: Error");69else70Console.WriteLine("SingleSetRename: Success");71}72
73void SingleSetGet()74{75using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");76var db = redis.GetDatabase(0);77
78string origValue = "abcdefg";79db.StringSet("mykey", origValue);80
81string retValue = db.StringGet("mykey");82
83if (origValue != retValue)84Console.WriteLine("SingleSetGet: Error");85else86Console.WriteLine("SingleSetGet: Success");87}88
89void SingleIncr()90{91var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");92var db = redis.GetDatabase(0);93
94// Key storing integer95var nVal = -100000;96var strKey = "key1";97db.StringSet(strKey, nVal);98
99// string retValue = db.StringGet("key1");100
101db.StringIncrement(strKey);102int nRetVal = Convert.ToInt32(db.StringGet(strKey));103if (nVal + 1 != nRetVal)104Console.WriteLine("SingleIncr: Error");105else106Console.WriteLine("SingleIncr: Success");107}108
109void SingleIncrBy(long nIncr)110{111var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");112var db = redis.GetDatabase(0);113
114// Key storing integer115var nVal = 1000;116
117var strKey = "key1";118db.StringSet(strKey, nVal);119var s = db.StringGet(strKey);120
121var get = db.StringGet(strKey);122long n = db.StringIncrement(strKey, nIncr);123
124int nRetVal = Convert.ToInt32(db.StringGet(strKey));125if (n != nRetVal)126Console.WriteLine("SingleIncrBy: Error");127else128Console.WriteLine("SingleIncrBy: Success");129}130
131void SingleDecrBy(long nDecr)132{133var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");134var db = redis.GetDatabase(0);135
136// Key storing integer137var nVal = 900;138
139var strKey = "key1";140db.StringSet(strKey, nVal);141var s = db.StringGet(strKey);142
143long n = db.StringDecrement(strKey, nDecr);144int nRetVal = Convert.ToInt32(db.StringGet(strKey));145if (nVal - nDecr != nRetVal)146Console.WriteLine("SingleDecrBy: Error");147else148Console.WriteLine("SingleDecrBy: Success");149}150
151void SingleDecr(string strKey, int nVal)152{153var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");154var db = redis.GetDatabase(0);155
156// Key storing integer157db.StringSet(strKey, nVal);158db.StringDecrement(strKey);159int nRetVal = Convert.ToInt32(db.StringGet(strKey));160if (nVal - 1 != nRetVal)161Console.WriteLine("SingleDecr: Error");162else163Console.WriteLine("SingleDecr: Success");164}165
166void SingleIncrNoKey()167{168var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");169var db = redis.GetDatabase(0);170
171// Key storing integer172var strKey = "key1";173int init = Convert.ToInt32(db.StringGet(strKey));174db.StringIncrement(strKey);175
176int retVal = Convert.ToInt32(db.StringGet(strKey));177
178db.StringIncrement(strKey);179retVal = Convert.ToInt32(db.StringGet(strKey));180
181if (init + 2 != retVal)182Console.WriteLine("SingleIncrNoKey: Error");183else184Console.WriteLine("SingleIncrNoKey: Success");185}186
187void SingleExists()188{189var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");190var db = redis.GetDatabase(0);191
192// Key storing integer193var nVal = 100;194var strKey = "key1";195db.StringSet(strKey, nVal);196
197bool fExists = db.KeyExists("key1", CommandFlags.None);198if (fExists)199Console.WriteLine("SingleExists: Success");200else201Console.WriteLine("SingleExists: Error");202}203
204void SingleDelete()205{206var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");207var db = redis.GetDatabase(0);208
209// Key storing integer210var nVal = 100;211var strKey = "key1";212db.StringSet(strKey, nVal);213db.KeyDelete(strKey);214
215bool fExists = db.KeyExists("key1", CommandFlags.None);216if (!fExists)217Console.WriteLine("Pass: strKey, Key does not exists");218else219Console.WriteLine("Fail: strKey, Key was not deleted");220}221}222}