データベース学習-redisに関するメモ
1926 ワード
redis 2をダウンロードします.4.*バージョンソース
A,コマンドの登録
主に前の4つのパラメータを設定すればよいが、後のいくつかの属性はvmを開いたときのredisプリフェッチオプションの構成について、redis 2.6以降vm特性が廃棄されたため、これらのパラメータが何の役に立つかは見られませんでした.
redisCommandProc関数には、パラメータredisClient*cがあります.
c->argvでコマンドのパラメータリストを取得できます
その後、バックグラウンド処理後、addReply関数をクライアント応答メッセージに呼び出す
B,keepalive特性の構成
tcpはkeepalive特性を開いて、redisはanetTcpKeepAlive関数をカプセル化して、しかし有効になっていないで、なぜか分かりません
networkでcのcreateClient関数に次のコードを追加し、keepaliveのいくつかのパラメータ値を設定します.
Redis 2.6.*デフォルトでtcp keepaliveがオンになっています.
A,コマンドの登録
struct redisCommand {
char *name; //
redisCommandProc *proc; //
int arity; //
int flags; // REDIS_CMD_DENYOOM,NULL, ,
/* Use a function to determine which keys need to be loaded
* in the background prior to executing this command. Takes precedence
* over vm_firstkey and others, ignored when NULL */
redisVmPreloadProc *vm_preload_proc;
/* What keys should be loaded in background when calling this command? */
int vm_firstkey; /* The first argument that's a key (0 = no keys) */
int vm_lastkey; /* THe last argument that's a key */
int vm_keystep; /* The step between first and last key */
};
主に前の4つのパラメータを設定すればよいが、後のいくつかの属性はvmを開いたときのredisプリフェッチオプションの構成について、redis 2.6以降vm特性が廃棄されたため、これらのパラメータが何の役に立つかは見られませんでした.
redisCommandProc関数には、パラメータredisClient*cがあります.
c->argvでコマンドのパラメータリストを取得できます
その後、バックグラウンド処理後、addReply関数をクライアント応答メッセージに呼び出す
B,keepalive特性の構成
tcpはkeepalive特性を開いて、redisはanetTcpKeepAlive関数をカプセル化して、しかし有効になっていないで、なぜか分かりません
networkでcのcreateClient関数に次のコードを追加し、keepaliveのいくつかのパラメータ値を設定します.
anetNonBlock(NULL,fd);
anetTcpNoDelay(NULL,fd);
if(server.keepalive){
anetTcpKeepAlive(NULL,fd);
setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, (void*)&server.keepidle , sizeof(server.keepidle ));
setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, (void *)&server.keepinterval , sizeof(server.keepinterval ));
setsockopt(fd, SOL_TCP, TCP_KEEPCNT, (void *)&server.keepcount , sizeof(server.keepcount ));
}
Redis 2.6.*デフォルトでtcp keepaliveがオンになっています.