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)}"); }
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); }