redisのいくつかの操作コマンド
3560 ワード
1.ps-ef|grep redis(redisの起動例を参照)
2. ./src/redis-cli-p 6380 shutdown(6380インスタンスを閉じる)
3. ./src/redis-server redis_yuzhan.conf(起動6380例)
4.127.0.0.1:6481>SLAVEOF 127.0.0.1 6380(6481を6380のslaveサーバとする)
5.springトランザクション:http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html
6.rediesクラスタにスレーブサーバが何台もある場合は、すべてのスレーブサーバを一度に起動しないでください.サーバから起動すると、プライマリサーバからデータが全量同期されます.一度に起動しすぎると、プライマリサーバはforkから大量のサブプロセスをdumpし、プライマリサーバが高ioになり、プライマリサーバが停止する可能性があります.
7.AOF持続化を行う場合
1秒間に1回書き込むと、redisのパフォーマンスが低下するので、避けられません.データセキュリティのために考慮します.
8.うっかりflushallサーバー
ソリューション:今すぐshutdown nosaveサーバ!
原因:他のプロセスがサーバを書き込み中であることを防止し、aofの書き換えを招く.サーバはshutdown時にaofを書き換えるのでnosaveを付けます.彼女にaofを書き直さないようにすることができます
9.rdbファイルの完全性を減産する
redis-check-dump redis.conf
1.slaveサーバをマスターサーバに設定
slaveeof no one-->セカンダリホストは、任意のマシンのスレーブサーバとして機能しません.
config set slave-read-only no-->読み取り可能
2.redis再試行
3.redisは物理的に主従関係を変える
4.redis導入案
Redisのslaveノードはslave-serve-stale-data=noを構成する必要があります.失効ノードがslaveに復元されたときにデータがすべて同期されるようにしてこそ、健康とみなされるノードを入れることができる.(コンフィギュレーションファイルに主従関係を設定しないでください.実行中に主従ロールが変化するため、コンフィギュレーションファイルに主従関係を設定します.実行中に主従ロールが変化するためです.slave-serve-stale-data noを設定し、ノードからクライアントの読み書き要求を受信できません)
5.redis主従切替方式
2. ./src/redis-cli-p 6380 shutdown(6380インスタンスを閉じる)
3. ./src/redis-server redis_yuzhan.conf(起動6380例)
4.127.0.0.1:6481>SLAVEOF 127.0.0.1 6380(6481を6380のslaveサーバとする)
5.springトランザクション:http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html
private static XStream xStream;
static {
xStream = new XStream();
xStream.ignoreUnknownElements();
xStream.autodetectAnnotations(true);
}
public static String toXml(Object obj) {
return xStream.toXML(obj);
}
@SuppressWarnings("unchecked")
public static <T> T fromXml(String xmlStr, Class<T> cls) {
T obj = (T) xStream.fromXML(xmlStr);
return obj;
}
6.rediesクラスタにスレーブサーバが何台もある場合は、すべてのスレーブサーバを一度に起動しないでください.サーバから起動すると、プライマリサーバからデータが全量同期されます.一度に起動しすぎると、プライマリサーバはforkから大量のサブプロセスをdumpし、プライマリサーバが高ioになり、プライマリサーバが停止する可能性があります.
7.AOF持続化を行う場合
# appendfsync always , , ,
appendfsync everysec
# appendfsync no , , ,
appendfsync no方式を採用し、1つのコマンドを書き込むたびにファイルに1つ書きます.これにより、メモリ・データベースの可能性に反し、直接ファイルを書くほうがいいので、このような方法で:appendfsync everysec
1秒間に1回書き込むと、redisのパフォーマンスが低下するので、避けられません.データセキュリティのために考慮します.
8.うっかりflushallサーバー
ソリューション:今すぐshutdown nosaveサーバ!
原因:他のプロセスがサーバを書き込み中であることを防止し、aofの書き換えを招く.サーバはshutdown時にaofを書き換えるのでnosaveを付けます.彼女にaofを書き直さないようにすることができます
9.rdbファイルの完全性を減産する
redis-check-dump redis.conf
1.slaveサーバをマスターサーバに設定
slaveeof no one-->セカンダリホストは、任意のマシンのスレーブサーバとして機能しません.
config set slave-read-only no-->読み取り可能
2.redis再試行
/**
* , , MAX_RETRY
*/
private boolean addToRedis(String key, String value) {
if (!StringUtil.checkBlank(key)) {
int retryCount = 0;
while (retryCount < MAX_RETRY) {
try {
this.redisUtils.set(key, value);
return true;
} catch (Exception e) {
if (retryCount == MAX_RETRY - 1)
LOG.error("addToRedis : Error Del From Redis , Key=" + key + ",value=" + value, e);
retryCount++;
}
}
}
return false;
}
3.redisは物理的に主従関係を変える
public String slaveofNoOne() throws RedisAccessException {
boolean flag = true;
ShardedJedis j = null;
String result = null;
String script = "return redis.call('CONFIG','REWRITE')";
try {
j = writePool.getResource();
Collection<Jedis> list = j.getAllShards();
for (Jedis jedis : list) {
jedis.slaveofNoOne();
jedis.eval(script);
}
} catch (Exception ex) {
flag = false;
writePool.returnBrokenResource(j);
throw new RedisAccessException(ex);
} finally {
if (flag) {
writePool.returnResource(j);
}
}
return result;
}
4.redis導入案
Redisのslaveノードはslave-serve-stale-data=noを構成する必要があります.失効ノードがslaveに復元されたときにデータがすべて同期されるようにしてこそ、健康とみなされるノードを入れることができる.(コンフィギュレーションファイルに主従関係を設定しないでください.実行中に主従ロールが変化するため、コンフィギュレーションファイルに主従関係を設定します.実行中に主従ロールが変化するためです.slave-serve-stale-data noを設定し、ノードからクライアントの読み書き要求を受信できません)
5.redis主従切替方式
1. redis 。slave no one
2. redis :CONFIG REWRITE
3. redis :config get timeout
config set timeout 0
config rewrite