Diese Wissenspunkte von Redis müssen bekannt sein!

Redis ist ein Open Source (BSD-lizenzierter) speicherinterner Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenwarteschlange verwendet werden kann. Im Vergleich zu Memcached werden mehr Datenstrukturen unterstützt, z. B. String (String), Hash (Hash), Liste (verknüpfte Liste), Set (Sammlung), Zset (geordnete Sammlung), Bitmap, Hyperloglogs und Geospatial-Index für Radiusabfragen. Redis verfügt über integrierte Replikation, Lua-Skripte, LRU-Recycling, Transaktionen und verschiedene Ebenen der Festplattenpersistenz und bietet Hochverfügbarkeit und automatische Partitionierung von Redis Cluster über Redis Sentinel.

In diesem Kapitel werden die Wissenspunkte der Redis-Hauptkonfigurationsdatei erläutert, mit deren Hilfe sie flexibler verwendet werden kann.

ich redis.conf

daemonize yes     #是否以后台进程运行

pidfile/var/run/redis/redis-server.pid    #pid文件位置

port 6379         #监听端口

bind 127.0.0.1       #绑定地址,如外网需要连接,设置0.0.0.0

timeout 300       #连接超时时间,单位秒

loglevel notice      #日志级别,分别有:debug (适用于开发和测试),verbose(更详细信息),notice(适用于生产环境),warning(只记录警告或错误信息)

logfile/var/log/redis/redis-server.log   #日志文件位置

syslog-enabled no      #是否将日志输出到系统日志

databases 16        #设置数据库数量,默认数据库为0

################ Snapshot Way #################################### #################################################### #################################################### #################################################### #################################################### #######################################

save 900 1          #在900s(15m)之后,至少有1个key发生变化,则快照

save 300 10          #在300s(5m)之后,至少有10个key发生变化,则快照

save 60 10000      #在60s(1m)之后,至少有1000个key发生变化,则快照

rdbcompression yes  #dump时是否压缩数据

dir /var/lib/redis       #数据库(dump.rdb)文件存放目录

################ Master-Slave-Kopie ################################# #################################################### #################################################### #################################################### #################################################### ############

slaveof <masterip> <masterport>   #主从复制使用,用于本机redis作为slave去连接主redis

masterauth <master-password>      #当master设置密码认证,slave用此选项指定master认证密码

slave-serve-stale-data yes         #当slave与master之间的连接断开或slave正在与master进行数据同步时,如果有slave请求,当设置为yes时,slave仍然响应请求,此时可能有问题,如果设置no时,slave会返回"SYNCwith master in progress"错误信息。但INFO和SLAVEOF命令除外。

############### Sicherheit ################

requirepass pass  #配置redis连接认证密码

################ Limits #################

maxclients 128      #设置最大连接数,0为不限制

maxmemory <bytes> #内存清理策略,如果达到此值,将采取以下动作:

# volatile-lru :默认策略,只对设置过期时间的key进行LRU算法删除

# allkeys-lru :删除不经常使用的key

# volatile-random :随机删除即将过期的key

# allkeys-random :随机删除一个key

# volatile-ttl :删除即将过期的key

# noeviction :不过期,写操作返回报错

maxmemory-policy volatile-lru    #如果达到maxmemory值,采用此策略

maxmemory-samples 3       #默认随机选择3个key,从中淘汰最不经常用的

################ Zusätzlicher Modus ################

appendonly no   #AOF持久化,是否记录更新操作日志,默认redis是异步(快照)把数据写入本地磁盘

appendfilename appendonly.aof  #指定更新日志文件名

# AOF持久化三种同步策略:

# appendfsync always     #每次有数据发生变化时都会写入appendonly.aof

# appendfsync everysec   #默认方式,每秒同步一次到appendonly.aof

# appendfsync no        #不同步,数据不会持久化

no-appendfsync-on-rewrite no   #当AOF日志文件即将增长到指定百分比时,redis通过调用BGREWRITEAOF是否自动重写AOF日志文件。

############### Virtueller Speicher###############

vm-enabled no     #是否启用虚拟内存机制,虚拟内存机将数据分页存放,把很少访问的页放到swap上,内存占用多,最好关闭虚拟内存

vm-swap-file /var/lib/redis/redis.swap   #虚拟内存文件位置

vm-max-memory 0   #redis使用的最大内存上限,保护redis不会因过多使用物理内存影响性能

vm-page-size 32   #每个页面的大小为32字节

vm-pages 134217728 #设置swap文件中页面数量

vm-max-threads 4   #访问swap文件的线程数

############### Erweiterte Konfiguration ###############

hash-max-zipmap-entries 512   #哈希表中元素(条目)总个数不超过设定数量时,采用线性紧凑格式存储来节省空间

hash-max-zipmap-value 64     #哈希表中每个value的长度不超过多少字节时,采用线性紧凑格式存储来节省空间

list-max-ziplist-entries 512    #list数据类型多少节点以下会采用去指针的紧凑存储格式

list-max-ziplist-value 64        #list数据类型节点值大小小于多少字节会采用紧凑存储格式

set-max-intset-entries 512   #set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储

activerehashing yes         #是否激活重置哈希

Zusammenfassung:

Redis bietet verschiedene Persistenzmechanismen:

1. RDB (Standard)

Arbeitsmodus: Lösen Sie einen Snapshot (Dump) für die Datei dump.rdb gemäß dem durch den Parameter save in der obigen Konfigurationsdatei angegebenen Zeitintervall und der Anzahl der Schlüsseländerungen aus.

Vorteile: Einfache Sicherung und Wiederherstellung. RDB schließt die Snapshot-Arbeit über Unterprozesse ab, was relativ effizienter ist als der AOF-Start.

Nachteile: Bei einem Serverausfall gehen innerhalb weniger Minuten Daten verloren.

2 、 AOF

So funktioniert es: Alle Aktualisierungsvorgänge werden in Form eines Protokolls in der AOF-Protokolldatei aufgezeichnet. Die Protokolldatei wird beim Neustart des Redis-Dienstes gelesen, um die Datenbank neu zu erstellen und die Datenintegrität nach dem Start sicherzustellen.

Vorteile: AOF bietet zwei Synchronisationsmechanismen: Einer ist, dass fsync bei jeder Datenänderung immer mit der Protokolldatei synchronisiert wird und fsync alle Sekunden jede Sekunde mit der Protokolldatei synchronisiert wird, um die Datenintegrität weitgehend sicherzustellen.

Nachteile: Die Protokolldatei ist viel größer als die RDB-Snapshot-Datei.

AOF-Protokollumschreibungsfunktion: Wenn die AOF-Protokolldatei zu groß ist, schreibt redis das AOF-Protokoll automatisch neu. Im Anhänge-Modus werden die Aktualisierungsdatensätze kontinuierlich in die alte Protokolldatei geschrieben. Gleichzeitig erstellt redis auch eine neue Protokolldatei zum Anhängen der nachfolgenden Aufnahme.

3. Gleichzeitige Anwendung von RDB und AOF

In Szenarien mit hoher Datensicherheit können AOF und RDB gleichzeitig verwendet werden, wodurch die Leistung verringert wird.

4. Keine Beharrlichkeit

In Geschäftsszenarien, für die keine Datenpersistenz erforderlich ist, sollte die Persistenz deaktiviert werden, wodurch die Leistung erheblich verbessert wird.

Methode schließen: In der Konfigurationsdatei festlegen

appendonly no

save “”

5. Wechseln Sie von RDB zu AOF, ohne den Redis-Dienst neu zu starten

redis-cli> CONFIGSET appendonly yes      #启用AOF

redis-cli> CONFIGSET save ""         #关闭RDB

5. Nach dem Fehler in der AOF-Protokolldatei die Reparaturmethode

redis-check-aof --fixappendonly.aof  #--fix参数为修复日志文件,不加则对日志检查。

Ich denke du magst

Origin blog.51cto.com/15127501/2657396
Empfohlen
Rangfolge