garnet

Форк
0
/
SERedisSamples.cs 
222 строки · 7.1 Кб
1
// Copyright (c) Microsoft Corporation.
2
// Licensed under the MIT license.
3

4
using System;
5
using System.Threading.Tasks;
6
using StackExchange.Redis;
7

8
namespace GarnetClientSample
9
{
10
    /// <summary>
11
    /// Use Garnet with StackExchange.Redis as client library
12
    /// </summary>
13
    public class SERedisSamples
14
    {
15
        readonly string address;
16
        readonly int port;
17

18
        public SERedisSamples(string address, int port)
19
        {
20
            this.address = address;
21
            this.port = port;
22
        }
23

24
        public async Task RunAll()
25
        {
26
            await RespPingAsync();
27
            RespPing();
28
            SingleSetRename();
29
            SingleSetGet();
30
            SingleIncr();
31
            SingleIncrBy(99);
32
            SingleDecrBy(99);
33
            SingleDecr("test", 5);
34
            SingleIncrNoKey();
35
            SingleExists();
36
            SingleDelete();
37
        }
38

39
        async Task RespPingAsync()
40
        {
41
            using var redis = await ConnectionMultiplexer.ConnectAsync($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
42
            var db = redis.GetDatabase(0);
43
            await db.PingAsync();
44
            Console.WriteLine("RespPing: Success");
45
        }
46

47
        void RespPing()
48
        {
49
            using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
50
            var db = redis.GetDatabase(0);
51
            db.Ping();
52
            var cname = redis.ClientName;
53
            Console.WriteLine("RespPing: Success");
54
        }
55

56
        void SingleSetRename()
57
        {
58
            using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
59
            var db = redis.GetDatabase(0);
60

61
            string origValue = "test1";
62
            db.StringSet("key1", origValue);
63

64
            db.KeyRename("key1", "key2");
65
            string retValue = db.StringGet("key2");
66

67
            if (origValue != retValue)
68
                Console.WriteLine("SingleSetRename: Error");
69
            else
70
                Console.WriteLine("SingleSetRename: Success");
71
        }
72

73
        void SingleSetGet()
74
        {
75
            using var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
76
            var db = redis.GetDatabase(0);
77

78
            string origValue = "abcdefg";
79
            db.StringSet("mykey", origValue);
80

81
            string retValue = db.StringGet("mykey");
82

83
            if (origValue != retValue)
84
                Console.WriteLine("SingleSetGet: Error");
85
            else
86
                Console.WriteLine("SingleSetGet: Success");
87
        }
88

89
        void SingleIncr()
90
        {
91
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
92
            var db = redis.GetDatabase(0);
93

94
            // Key storing integer
95
            var nVal = -100000;
96
            var strKey = "key1";
97
            db.StringSet(strKey, nVal);
98

99
            // string retValue = db.StringGet("key1");
100

101
            db.StringIncrement(strKey);
102
            int nRetVal = Convert.ToInt32(db.StringGet(strKey));
103
            if (nVal + 1 != nRetVal)
104
                Console.WriteLine("SingleIncr: Error");
105
            else
106
                Console.WriteLine("SingleIncr: Success");
107
        }
108

109
        void SingleIncrBy(long nIncr)
110
        {
111
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
112
            var db = redis.GetDatabase(0);
113

114
            // Key storing integer
115
            var nVal = 1000;
116

117
            var strKey = "key1";
118
            db.StringSet(strKey, nVal);
119
            var s = db.StringGet(strKey);
120

121
            var get = db.StringGet(strKey);
122
            long n = db.StringIncrement(strKey, nIncr);
123

124
            int nRetVal = Convert.ToInt32(db.StringGet(strKey));
125
            if (n != nRetVal)
126
                Console.WriteLine("SingleIncrBy: Error");
127
            else
128
                Console.WriteLine("SingleIncrBy: Success");
129
        }
130

131
        void SingleDecrBy(long nDecr)
132
        {
133
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
134
            var db = redis.GetDatabase(0);
135

136
            // Key storing integer
137
            var nVal = 900;
138

139
            var strKey = "key1";
140
            db.StringSet(strKey, nVal);
141
            var s = db.StringGet(strKey);
142

143
            long n = db.StringDecrement(strKey, nDecr);
144
            int nRetVal = Convert.ToInt32(db.StringGet(strKey));
145
            if (nVal - nDecr != nRetVal)
146
                Console.WriteLine("SingleDecrBy: Error");
147
            else
148
                Console.WriteLine("SingleDecrBy: Success");
149
        }
150

151
        void SingleDecr(string strKey, int nVal)
152
        {
153
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
154
            var db = redis.GetDatabase(0);
155

156
            // Key storing integer
157
            db.StringSet(strKey, nVal);
158
            db.StringDecrement(strKey);
159
            int nRetVal = Convert.ToInt32(db.StringGet(strKey));
160
            if (nVal - 1 != nRetVal)
161
                Console.WriteLine("SingleDecr: Error");
162
            else
163
                Console.WriteLine("SingleDecr: Success");
164
        }
165

166
        void SingleIncrNoKey()
167
        {
168
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
169
            var db = redis.GetDatabase(0);
170

171
            // Key storing integer
172
            var strKey = "key1";
173
            int init = Convert.ToInt32(db.StringGet(strKey));
174
            db.StringIncrement(strKey);
175

176
            int retVal = Convert.ToInt32(db.StringGet(strKey));
177

178
            db.StringIncrement(strKey);
179
            retVal = Convert.ToInt32(db.StringGet(strKey));
180

181
            if (init + 2 != retVal)
182
                Console.WriteLine("SingleIncrNoKey: Error");
183
            else
184
                Console.WriteLine("SingleIncrNoKey: Success");
185
        }
186

187
        void SingleExists()
188
        {
189
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
190
            var db = redis.GetDatabase(0);
191

192
            // Key storing integer
193
            var nVal = 100;
194
            var strKey = "key1";
195
            db.StringSet(strKey, nVal);
196

197
            bool fExists = db.KeyExists("key1", CommandFlags.None);
198
            if (fExists)
199
                Console.WriteLine("SingleExists: Success");
200
            else
201
                Console.WriteLine("SingleExists: Error");
202
        }
203

204
        void SingleDelete()
205
        {
206
            var redis = ConnectionMultiplexer.Connect($"{address}:{port},connectTimeout=999999,syncTimeout=999999");
207
            var db = redis.GetDatabase(0);
208

209
            // Key storing integer
210
            var nVal = 100;
211
            var strKey = "key1";
212
            db.StringSet(strKey, nVal);
213
            db.KeyDelete(strKey);
214

215
            bool fExists = db.KeyExists("key1", CommandFlags.None);
216
            if (!fExists)
217
                Console.WriteLine("Pass: strKey, Key does not exists");
218
            else
219
                Console.WriteLine("Fail: strKey, Key was not deleted");
220
        }
221
    }
222
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.