Commit 16df9046 authored by Jon Cole's avatar Jon Cole

Merge branch 'master' into cpuConnectFailure

parents b901aa3c 786e946d
Pipelines and Multiplexers
===
Latency sucks. Modern computers can churn data at an alarming rate, and high speed networking (often with multiple parallel links between important servers) provides enormous bandwidth, but... that damned latency means that computers spend an awful lot of time *waiting for data* (one of the several reasons that continuation-based programming is becoming increasingly popular. Let's consider some regular procedural code:
Latency sucks. Modern computers can churn data at an alarming rate, and high speed networking (often with multiple parallel links between important servers) provides enormous bandwidth, but... that damned latency means that computers spend an awful lot of time *waiting for data* and that is one of the several reasons that continuation-based programming is becoming increasingly popular. Let's consider some regular procedural code:
```C#
string a = db.StringGet("a");
......@@ -97,7 +97,7 @@ Concurrency
It should be noted that the pipeline / multiplexer / future-value approach also plays very nicely with continuation-based asynchronous code; for example you could write:
```C#
string value = await db.StringGet(key);
string value = await db.StringGetAsync(key);
if (value == null) {
value = await ComputeValueFromDatabase(...);
db.StringSet(key, value, flags: CommandFlags.FireAndForget);
......
port 6379
dbfilename master.rdb
databases 2000
maxheap 6gb
maxmemory 6gb
save ""
\ No newline at end of file
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7000
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7000
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7001
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7001
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7002
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7002
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7003
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7003
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7004
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7004
@..\packages\Redis-64.2.8.19\redis-cli.exe -h 127.0.0.1 -p 7005
@..\packages\Redis-64.3.0.503\redis-cli.exe -h 127.0.0.1 -p 7005
@..\packages\Redis-64.2.8.19\redis-cli.exe -p 6379
@..\packages\Redis-64.3.0.503\redis-cli.exe -p 6379
@..\packages\Redis-64.2.8.19\redis-cli.exe -p 6381
@..\packages\Redis-64.3.0.503\redis-cli.exe -p 6381
@..\packages\Redis-64.2.8.19\redis-cli.exe -p 6380
@..\packages\Redis-64.3.0.503\redis-cli.exe -p 6380
@start ..\packages\Redis-64.2.8.19\redis-server.exe master.conf
@start ..\packages\Redis-64.2.8.19\redis-server.exe slave.conf
@start ..\packages\Redis-64.2.8.19\redis-server.exe secure.conf
@start ..\packages\Redis-64.3.0.503\redis-server.exe master.conf
@start ..\packages\Redis-64.3.0.503\redis-server.exe slave.conf
@start ..\packages\Redis-64.3.0.503\redis-server.exe secure.conf
@..\packages\Redis-64.2.8.19\redis-server.exe master.conf
@..\packages\Redis-64.3.0.503\redis-server.exe master.conf
@..\packages\Redis-64.2.8.19\redis-server.exe secure.conf
@..\packages\Redis-64.3.0.503\redis-server.exe secure.conf
@..\packages\Redis-64.2.8.19\redis-server.exe slave.conf
@..\packages\Redis-64.3.0.503\redis-server.exe slave.conf
......@@ -2,5 +2,5 @@ port 6381
requirepass changeme
dbfilename secure.rdb
databases 2000
maxheap 512mb
maxmemory 512mb
save ""
\ No newline at end of file
......@@ -2,5 +2,5 @@ port 6380
slaveof 127.0.0.1 6379
dbfilename slave.rdb
databases 2000
maxheap 2gb
maxmemory 2gb
save ""
\ No newline at end of file
......@@ -6,6 +6,7 @@
"version": "1.1.*",
"target": "project"
},
"redis-64": "3.0.503",
"nunit": "3.4.1",
"dotnet-test-nunit": "3.4.0-beta-1"
},
......
......@@ -233,7 +233,7 @@ public CommandMap CommandMap
public string Password { get { return password; } set { password = value; } }
/// <summary>
/// Indicates whether admin operations should be allowed
/// Type of proxy to use (if any); for example Proxy.Twemproxy
/// </summary>
public Proxy Proxy { get { return proxy.GetValueOrDefault(); } set { proxy = value; } }
......
......@@ -89,7 +89,7 @@ public interface IProfiledCommand
TimeSpan ResponseToCompletion { get; }
/// <summary>
/// How long it took this redis command to be processed, from creation to deserializing the final resposne.
/// How long it took this redis command to be processed, from creation to deserializing the final response.
///
/// Note that this TimeSpan *does not* include time spent awaiting a Task in consumer code.
/// </summary>
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment