Ejemplo n.º 1
0
        private static async Task MemcachedProtocol(IServiceProvider serviceProvider)
        {
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.SetMinimumLevel(LogLevel.Error);
                builder.AddConsole();
            });

            var client = new ClientBuilder(serviceProvider)
                         .UseSockets()
                         .UseConnectionLogging(loggerFactory: loggerFactory)
                         .Build();

            var ipAddress  = IPAddress.Parse("127.0.0.1");
            var connection = await client.ConnectAsync(new IPEndPoint(ipAddress, 11211));

            MemcachedProtocol memcachedProtocol = new MemcachedProtocol(connection);

            await memcachedProtocol.Set("Hello", Encoding.UTF8.GetBytes("World"), TimeSpan.FromMinutes(30));

            var checkSet = await memcachedProtocol.Get("Hello");

            Console.WriteLine($"checkSet result :{Encoding.UTF8.GetString(checkSet)}");

            await memcachedProtocol.Replace("Hello", Encoding.UTF8.GetBytes("World replaced"), TimeSpan.FromMinutes(30));

            var checkReplace = await memcachedProtocol.Get("Hello");

            Console.WriteLine($"checkReplace result :{Encoding.UTF8.GetString(checkReplace)}");
        }
Ejemplo n.º 2
0
        public async Task ReplaceValue()
        {
            var builder = new ClientBuilder().UseSockets().Build();

            await using var connection = await builder.ConnectAsync(TestConstants.MemcachedServer);

            await using var client = new MemcachedProtocol(new LowLatencyMessageProtocol <MemcachedRequest, IMemcachedResponse>(connection, new MemcachedMessageWriter(), new MemcachedMessageReader()));
            client.Start();

            var key = "ToReplace";

            await client.Set(key, "firstValue", null);

            var value = await client.Get <string, StringResponseDeserializer>(key, new StringResponseDeserializer());

            Assert.Equal("firstValue", value);

            await client.Replace(new StringWritable(key), new StringWritable("newValue"), null);

            var replaced = await client.Get <string, StringResponseDeserializer>(key, new StringResponseDeserializer());

            Assert.Equal("newValue", replaced);
        }