Redis服务配置

Redis服务配置文件位于Redis安装目录下名为redis.conf,可使用config命令获取get或设置set配置项。

获取Redis服务配置值,*表示获取Redis所有配置项。

$ redis-cli
redis 127.0.0.1:6379> config get *

修改Redis服务配置项

$ redis-cli
redis 127.0.0.1:6379> config set loglevel "notice"

Redis服务配置被划分为9大块

  • 通用
  • 快照
  • 复制
  • 安全
  • 限制
  • 追加模式
  • Lua脚本
  • 慢日志
  • 事件通知

通用 GENERAL

daemonize

Redis服务是否以守护进程的方式运行,默认为no,使用yes开启。默认情况下 Redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。开启后Redis会生成一个pid文件,默认会将pid写入/var/run/redis.pid文件,可通过pidfile配置项指定路径。

redis 127.0.0.1:6379> config get daemonize
1) "daemonize"
2) "no"

pidfile

Redis服务以守护进程运行时pid文件保存路径,Redis 默认会把 pid 文件放在/var/run/redis.pid

redis 127.0.0.1:6379> config get pidfile
1) "pidfile"
2) "/var/run/redis.pid"

port

Redis默认服务端口是6379,若设置为0的话,redis 将不在 socket 上监听任何客户端连接。如果Redis不监听端口那还怎么与外界通信呢?其实Redis支持通过UNIX socket方式来接收请求,可通过unixsocket配置项来指定UNIX socket文件的路径,并通过unixsocketperm来指定文件的权限。

redis 127.0.0.1:6379> config get port
1) "port"
2) "6379"

unixsocket

指定UNIX socket文件的路径

redis 127.0.0.1:6379> config get unixsocket
1) "unixsocket"
2) ""

unixsocketperm

指定UNIX socket文件的权限

redis 127.0.0.1:6379> config get unixsocketperm
1) "unixsocketperm"
2) "0"

bind

Redis服务绑定的主机地址,默认情况下,Redis会响应本机所有可用网卡的连接请求。当然,Redis允许通过bind配置项来指定要绑定的IP地址。

redis 127.0.0.1:6379> config get bind
1) "bind"
2) ""

timeout

Redis客户端空闲多少秒后自动关闭连接,0表示关闭该功能。

redis 127.0.0.1:6379> config get timeout
1) "timeout"
2) "0"

loglevel

Redis日志记录级别支持四个级别:debugverbosenoticewarning,默认为verbose

  • debug 适用于开发或测试阶段。
  • verbose 许多有用的信息,但是没有debug级别信息多。
  • notice 适用于生产环境
  • warning 仅仅一些重要的消息被记录
redis 127.0.0.1:6379> config get loglevel
1) "loglevel"
2) "notice"

logfile

Redis日志记录方式默认为标准输出stdout,若配置Redis服务为守护进程方式daemon运行又配置日志记录为标准输入的话,日志将会发送给/dev/null

redis 127.0.0.1:6379> config get logfile
1) "logfile"
2) "Logs/redis_log.txt"

databases

Redis数据库的数量,默认16个。默认使用的数据库是DB 0,可以通过SELECT dbindex命令选择一个数据库。

redis 127.0.0.1:6379> config get databases
1) "databases"
2) "16"

快照 SNAPSHOTTING

save

设置Redis进行数据库镜像的频率,配置在多少秒内有多少次更新操作将数据同步到数据文件,可配合多个条件。

save <seconds> <changes>

Redis默认配置提供三个条件

// 900秒(15分钟)内至少1个key值改变,则进行数据库保存--持久化。
save 900 1
// 300秒(5分钟)内至少10个key值改变,则进行数据库保存--持久化。
save 300 10
// 60秒(1分钟)内至少10000个key值改变,则进行数据库保存--持久化。
save 60 1000
redis 127.0.0.1:6379> config get save
1) "save"
2) "jd 900 jd 300 jd 60"

rdbcompression

rdbcompression指定存储本地数据库时是否压缩数据,默认yes表示Redis将采用LZF压缩。若为了节省CPU时间则可关闭此选项,但会导致数据库文件变得巨大。

redis 127.0.0.1:6379> config get rdbcompression
1) "rdbcompression"
2) "yes"

dbfilename

dbfilename指定本地数据库文件名,rdb文件的名称。

redis 127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

dir

指定本地数据库存放目录,数据目录,数据库的写入会在这个目录。rdbaof文件也会写在这个目录。

redis 127.0.0.1:6379> config get dir
1) "dir"
2) "C:\\redis"

主从复制 REPLICATION

slaveof

设置本机为slave服务时配置master服务的IP与端口

slaveof <master_ip> <master_port>

在Redis启动时,会自动从master进行数据同步

redis 127.0.0.1:6379> config get slaveof
1) "slaveof"
2) ""

Redis主从复制时如何交互的

4933701-07261bec4e4ab327.png
Redis主从复制交互流程
  1. Slave服务启动,主动连接Master,并发送SYN命令请求初始化同步。
  2. Master接收到SYN后,执行bgsave命令生成RDB文件,并缓存该时间段内的写命令。
  3. Master完成RDB文件后将其发送给所有Slave服务器
  4. Slave服务器接收到RDB文件后,删除内存中旧的缓存数据并装载RDB文件。
  5. Master在发送完RDB后即向所有Slave服务器发送缓存中的写命令
  6. 至此初始化完成,后续进行增量同步。

Redis主从复制非常脆弱,一旦Master服务器宕机会导致无法向Redis中读取或写入数据,高可用性极差。

未完待续...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值