Redisの構成と最適化
Redisのご紹介
Redisのメモリベース動作と支持永続
のキー値(キーと値のペア)を使用してストレージ形態
の利点:
データが読み込まれ、高いとの書き込み速度
をサポート豊富なデータ型は、
永続データをサポート
アトミック
サポート・データのバックアップ
違いRedisのとMEM
Redisの:サポートの永続性は、構造化をサポートしていません
MEMを:構造化のためのサポートを、永続性をサポートしていません。
インストールと展開のRedisの
#安装必要安装包
yum install gcc gcc-c++ -y
#挂载必要软件包
mount.cifs //192.168.100.3/mem /mnt
#解压安装包
cd /mnt
tar zxvf redis-5.0.7.tar.gz -C /opt
#编译安装
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis/ install
#进入util目录,执行脚本
cd utils/
./install_server.sh
#执行后一路回车在这里添加/usr/local/redis/bin/redis-server一句
Please select the redis executable path [ ] /usr/local/redis/bin/redis-server
#创建命令连接
ln -s /usr/local/redis/bin/* /usr/local/bin
netstat -ntap | grep 6379 //查看服务是否开启
#使用/etc/init.d/redis_6379可以控制服务的开启和关闭
/etc/init.d/redis_6379 stop //停止服务
/etc/init.d/redis_6379 start //启动服务
Redisの設定ファイル
設定パラメータ
バインド:ホストアドレスのリスニング
ポート:ポート
デーモン化のはいを:デーモンを有効に
pidファイルを:指定PIDファイルの
ログレベル通知:ログレベルの
ログファイル:指定されたログファイル
Redisのデータベースよく使用するコマンド
Redisの-cilのコマンドラインツール
#连接本地数据库
redis-cil
#连接远程数据库
redis-cil -h 192.168.45.131 -p 6379
#获取命令帮助
127.0.0.1:6379> help @list
127.0.0.1:6379> help set
#set:存放数据
127.0.0.1:6379> set teacher lisi
#get:获取数据
127.0.0.1:6379> get teacher
鍵関連するコマンド
キー:キーのリストのルールに沿って取得
127.0.0.1:6379> keys * //查看当前数据库中所有的键
127.0.0.1:6379> keys v* //查看当前数据库中以v开头的键
127.0.0.1:6379> keys v? //查看当前数据库中以v开头后面包含任意一个字符的键
127.0.0.1:6379> keys v?? //看当前数据库中以v开头后面包含任意二个字符的键
存在する:キーがあるかどうかを判断します
127.0.0.1:6379> exists teacher
127.0.0.1:6379> exists tes
デル:現在の指定されたキーのデータベースを削除します
127.0.0.1:6379> del teacher
タイプ:キー値の型に対応する値を取得し
、既存のキー名の変更:名前の変更(カバー)/ renamenx(対象外)
127.0.0.1:6379> rename teacher tea
DBSIZE:ビューキー現在のデータベースの数
127.0.0.1:6379> dbsize
Redisのベンチマークテストツール
-h:サーバホストの指定
-pを:指定サーバのポート
-c:指定の同時接続数を
-n:指定要求は
-d:データサイズはバイト単位でSET / GET値を指定
-q:終了Redisのに強制します。唯一のクエリ/秒の値を表示し
192.168.45.131のIPアドレスに。変速機100のRedisのサーバーポート6379 10万個の同時要求のテストパフォーマンスに接続されていますredis-benchmark -h 192.168.45.131 -p 6379 -c 100 -n 100000
パケット性能のテストアクセス100のバイト
redis-benchmark -h 192.168.45.131 -p 6379 -q -d 100
マルチデータベース操作をRedisの
Redisのは、デフォルトのデータベースが命名16、0-15をサポートし、複数のデータベースをサポートし
、複数のデータベースの独立した、非干渉
マルチデータベースは、一般的に使用されるコマンドを
複数のデータベース間の切り替え
127.0.0.1:6379> select 10 //默认在第一个数据库中
OK
127.0.0.1:6379[10]> select 15
OK
127.0.0.1:6379[15]>
複数のデータベース間でデータを移動します
127.0.0.1:6379[15]> move k1 3 //将k1键移动到数据库3中
データベース内のデータを消去します
127.0.0.1:6379> flushdb
127.0.0.1:6379> flushall //慎用,清除所有数据库数据
Redisの持続性
持続性の概要
Redisのは、メモリ内のデータがオフに失われ、メモリ内で実行されている
Redisのデータを再利用できるようにする、または場所システム障害、我々はディスクスペースのRedisにデータを書き込む必要があり、その持続性
持続性の分類
RDBの方法:すべてのデータのコピーを取得する瞬間Redisの道のスナップショットを作成
AOFの道を:ファイルの書き込みコマンドの実行終了を記録データの変更にログ道に書き込まれます
RDB持久化
デフォルトのRedis永続モード
dump.rdbデフォルトのファイル名を
トリガ条件
在指定的时间间隔内,执行指定次数的写操作(配置文件控制)
执行save或者是bgsave(异步)命令
执行flushall命令,清空数据库所有数据
执行shutdown命令,保证服务器正常关闭且不丢失任何数据
長所と短所:
适合大规模的数据恢复
如果业务对数据的完整性和一致性要求不高,RDB是很好的选择
数据的完整性和一致性不高
备份是占用内存
RDBのデータファイルのリカバリ
dump.rdb Redisのファイルは、インストールディレクトリのbinディレクトリにコピーされている下では、サービスを再起動することができRedisの
プロファイルオプションを
vim /etc/redis/6379.conf
save 900 1 //900秒之内至少一次写操作
save 300 10 //300秒之内至少发生10次写操作
save 60 10000 //60秒之内发生至少10000 写操作,只要满足其一都会触发快照操作,注释所有的save项表示关闭RDB
dbfilename dump.rdb //RDB文件名称
dir /var/lib/redis/6379 //RDB文件路径
rdbcompression yes //是否进行压缩
AOFの永続性
Redisのは、デフォルトでオンになっていません
RDB(データの矛盾)の不足を補うため
、各書き込み操作を記録するログの形式で、ファイルに追加
Redisのrestartコマンドは、完全なデータを実行するために、前面から背面へのログファイルの内容に基づいて書かれます復旧作業
データファイルの回復によるとAOF
appendonly.aof Redisのファイルは、インストールディレクトリのbinディレクトリにコピーされている下では、サービスを再起動することができRedisの
プロファイルオプションを
vim /etc/redis/6379.conf
appendonly yes //开启AOF持久化
appendfilename “appendonly.aof” //AOF文件名称
#appendfsync always //同步持久化,每次发生数据变化会立即写入磁盘
appendfsync everysec //默认推荐,每秒异步记录一次(默认值)
#appendfsync no //不同步,交给操作系统决定如何同步
aof-load-truncated yes //忽略最后一条可能存在的问题的指令
AOF書き換えメカニズム
1.AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多
2.当AOF 文件的大小超过所设定的阈值时,Redis就会服AOF文件的内容压缩
書き換え原則AOF
Redis会fork除一条新进程,读取内存中的数据(并没有读取旧文件),并重写到一个临时文件夹中,最后替换旧的aof文件
AOFは、設定を書き換えます
vim /etc/redis/6379.conf
#在日志进行BGPWRITEAOF时,如果设置为yes表示新写入操作不进行同步fsync,只是暂存在缓存区里,避免造成磁盘IO操作冲突,等重写完成后在写入。redis中默认为no
no-appendfsunc-on-rewrite no
#当前AOF文件大小是上次日志重写时AOF文件大小两倍时,发生BGPEWRITEAOF操作
auto-aof-rewrite-percentage 100
#当前AOF文件执行BGPEWRITEAOF命令的最小值,避免刚开始启动Redis时由于文件尺寸较小导致频繁的BGPEWRITEAOF
auto-aof-rewrite-min-size 64mb
Redisのパフォーマンス管理
Redisのビューメモリ使用量
redis-cil
127.0.0.1:6379> info memory
used-memory:2650536
used-memory-human: 2.53M //内存使用量
mem_fragmentation_ratio:4.57 //内存碎片
メモリの断片化率
メモリはused_memory算出値Redisの割ることによって使用されるオペレーティングシステム割り当てメモリused_memory_rss値
メモリの断片化は、物理的メモリへの非効率的な分配OS /回復がされる
連続した物理メモリの割り当てない
Redisの例を理解するためのリソースのメモリの断片化を追跡しますパフォーマンスは非常に重要です
合理的である1よりもわずかに大きいメモリの断片化率は、この値は、速度が比較的低いメモリの断片化されていることを示し
メモリフラグメンテーション比が1.5を超えると、記載のRedisは、メモリ断片化の50%である物理メモリの実際のニーズの150%、消費
1未満のメモリの断片化率を説明したメモリ割り当ては、オペレーティングシステムであるスワッピングRedisの物理メモリを超え
メモリ使用量
Redisのメモリ使用量が最大メモリの利用可能な例を超えて、オペレーティング・システムは、メモリとスワップ空間スワップで開始する
避けるメモリスワッピング
データ選択のためのキャッシュサイズ
、可能な限りハッシュデータ構造を使用して
、キーの有効期限を設定する~~
回復キーは
Redisのが表示されているメモリ資源の合理的配分を確保するために
、メモリ使用量が最大しきい値設定に達したとき、あなたはキーリカバリのための戦略を選択する必要があります
デフォルトでは、復旧戦略を削除することは許可されていません
redis.comプロファイルの変更maxmemoryポリシーのプロパティ値
-volatile-lru:使用LRUS算法从已设置过期时间的数据集合中淘汰数据
-volatile-ttl:从已设置过期时间的数据集合中挑选即将过期的数据淘汰
-volatile-random:从已设置过期时间的数据集合中随机挑选数据淘汰
-alikeys-lru:使用LRU算法从所有数据集合中淘汰数据
-alikeys-random:从数据集合中任意选择数据淘汰
-no-enviction:禁止淘汰数据