Configuration
Redis has a number of different ways to configure the connection string, and Stackexchange.redis provides a rich configuration model that needs to be passed in when connect or ConnectAsync is called.
var conn = connectionmultiplexer.connect (configuration);
The configuration parameters here can be:
1. An instance of Configurationoptions
2. A string
The second approach is fundamentally configurationoptions.
Configuring Connections Through strings
The simplest configuration requires only one host name
var conn = Connectionmultiplexer.connect ("localhost");
It will connect to the local Redis server, the default 6379 port, and multiple connections are separated by commas. The other options include a "=" after the name. For example
var conn = Connectionmultiplexer.connect ("Redis0:6380,redis1:6380,allowadmin=true");
You can convert a string to configurationoptions or convert a configurationoptions to a string.
Configurationoptions options = Configurationoptions.parse (configstring);
OR
String configstring = Options. ToString ();
The recommended usage is to save the underlying information in a string, and then to change the other information in the run through Configurationoptions.
String configstring = Getredisconfiguration ();
var options = Configurationoptions.parse (configstring);
Options. ClientName = Getappname (); Only known at runtime
Options. Allowadmin = true;
conn = Connectionmultiplexer.connect (options);
You can also specify a password
var conn = Connectionmultiplexer.connect ("contoso5.redis.cache.windows.net,ssl=true,password= ...");
Configuration options
Configurationoptions contains a number of configuration options, some of which are commonly configured as follows:
Abortconnect: When True, a connection is not created when no server is available
Allowadmin: When True, you can use a number of commands that are considered dangerous
Channelprefix: Prefixes for all pub/sub channels
Connectretry: Number of retry connections
ConnectTimeout: Timeout period
Configchannel:broadcast channel name for communicating configuration changes
DefaultDatabase: Default 0 to-1
KeepAlive: Saves active connections for x seconds
Name:clientname
Password:password
Proxy: Agent such as Twemproxy
Resolvedns: Specifying DNS Resolution
Servicename:not currently implemented (intended for use with Sentinel)
Ssl={bool}: Using SLL encryption
Sslhost={string}: Forcing the server to use a specific SSL identity
Synctimeout={int}: Asynchronous Time-out
Tiebreaker={string}:key to selecting a server in an ambiguous master scenario
Version={string}: Redis version level (useful if the server does not do this available)
Writebuffer={int}: Size of output buffers
Each configuration item is separated by commas
Automatic and manual configuration
In most cases, Stackexchange.redis will automatically help us configure many options. such as server type, version, time-out, master-slave server, etc...
However, sometimes we need to exclude some commands from the server, in which case it is necessary to provide more information
configurationoptions config = new configurationoptions
{
Endpoints =
{
{"Redis0", 6379},
{"Redis1", 6380}
},
Commandmap = commandmap.create (New hashset<string>
{//EXCLUDE a few commands
"INFO", "CONFIG", "CLUSTER",
"PING", "ECHO", "CLIENT"
}, Available:false),
KeepAlive = 180,
Defaultversion = new Version (2, 8, 8),
Password = "Changeme"
};
You can also use the following string to set:
redis0:6379,redis1:6380,keepalive=180,version=2.8.8, $CLIENT =, $CLUSTER =, $CONFIG =, $ECHO =, $INFO =, $PING =
Rename command
You can disable or rename a command. This is done by Commandmap, as shown in the previous example, but with create (new hashset<string>) configured above, we use dictionary<string,string>. Set NULL on behalf of the command is disabled
var commands = new Dictionary<string,string> {
{"info", null},//disabled
{"Select", "Use"},//renamed to SQL equivalent for some reason
};
var options = new Configurationoptions {
// ...
Commandmap = commandmap.create (commands),
// ...
}
You can also use the following string to set:
$INFO =, $SELECT =use
Stackexchange.redis Use-Configuration