📅  最后修改于: 2023-12-03 15:04:52.602000             🧑  作者: Mango
Redis是一个高性能的键值存储系统,常用于缓存、消息队列等场景。在使用Redis时,了解如何进行配置非常重要,可以提高Redis的性能和安全性。
Redis的所有配置都存储在一个配置文件中,配置文件的默认名称为redis.conf
,可以通过--config
选项指定不同的文件。
Redis的配置文件采用类似于ini文件的格式,其中每个配置项都以如下的样式出现:
name value
例如:
port 6379
以上配置项表示Redis服务器开放的端口号为6379。
默认情况下,Redis监听所有的网络接口。如果Redis暴露于公共网络中,则极易受到攻击。因此,建议将Redis服务器仅绑定到特定的IPv4或IPv6地址上。
bind 127.0.0.1
以上配置项表示Redis仅绑定到本地回环接口上,即仅可通过localhost访问。
Redis支持简单的密码认证方式,可以防止未经授权的用户访问Redis。配置时需要为密码设置一个复杂的字符串,并确保redis用户账户拥有该密码在配置文件中的读权限。
requirepass mypassword
以上配置项表示Redis服务器的认证密码为mypassword
。
Redis默认只有一个数据库。如果需要划分多个独立的命名空间,可以通过databases
配置选项来指定Redis服务器支持的数据库数量。
databases 16
以上配置项表示Redis服务器支持16个独立的数据库空间。
Redis支持数据的持久化,以避免数据丢失。
Redis可以使用RDB持久化方式将内存中的数据快照写入磁盘,以便服务器崩溃时的数据恢复。可以通过save
和bgsave
两个配置项来指定该功能的触发方式。
save 900 1
save 300 10
save 60 10000
以上配置项表示:
Redis也可以使用AOF持久化方式,将所有对Redis状态的修改记录下来,以便服务器崩溃时的数据恢复。可以通过appendonly
、appendfsync
配置项来指定该功能的触发方式。
appendonly yes
appendfsync everysec
以上配置项表示:
Redis使用最大内存限制来限制占用内存的大小。如果指定的内存大小超过物理内存,则Redis将开始使用交换机(swap),严重影响性能。可以通过maxmemory
配置项来设置Redis最大使用内存大小。
maxmemory 2gb
以上配置项表示Redis最大可使用内存大小为2GB。
Redis支持内置的Lua脚本,可以执行很多任务如验证,限速等。可以使用lua-time-limit
和lua-script-limit
配置项来控制脚本的最大执行时间和Lua脚本数量。
lua-time-limit 5000
lua-script-limit 10000
以上配置项表示:
除了常用配置项之外,Redis还包括一些高级配置项。这些可选的配置项通常是专门应对某些高负载场景中的问题,而不是常规情况下应该优化的问题。
Redis每个值的大小限制为512MB。如果您有大量的大Key,那么Redis将开始使用交换空间,在内存不足时,效率可能显著降低。可以使用hash-max-zipmap-entries
和hash-max-zipmap-value
配置项来处理使用zipmap压缩算法的hash中的大keys。
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
以上配置项表示:
Redis Server默认启用TCP/IP协议,但它也支持Unix Domain Socket。Unix Domain Socket是一种本地通信机制,无需TCP/IP协议栈的转换,因此是一种更加高效和安全的通信方式。可以通过unixsocket
和unixsocketperm
配置项来启用Unix Domain Socket。
unixsocket /var/run/redis/redis.sock
unixsocketperm 700
以上配置项表示:
/var/run/redis/redis.sock
上。Redis提供一些分片算法,可以通过实例化多个Redis实例来扩展Redis内存容量。可以使用redis-sharding-policy
配置项来指定Redis分片算法。此外,还可以使用redis-sharding-address
配置项指定Redis分片服务器地址。
redis-sharding-policy crc16
redis-sharding-address localhost:7000 localhost:7001 localhost:7002
以上配置项表示:
localhost:7000
、localhost:7001
和localhost:7002
。Redis是一个非常灵活的键值存储系统,可以通过配置文件中的各种选项进行很好的控制。使用适当的配置选项可以使Redis更加稳定、安全和高效。