Redis【有与无】【Admin-5】Redis管理

本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。

目录

1.Redis管理

1.1.Redis设置提示

1.2.在EC2上运行Redis

1.3.无需停机即可升级或重启Redis实例


1.Redis管理

1.1.Redis设置提示

  • 我们建议使用Linux操作系统部署Redis。 Redis在OS X上也经过了严格的测试,并在FreeBSD和OpenBSD系统上不时进行了测试。 但是,Linux是我们进行所有主要压力测试以及运行大多数生产部署的地方。
  • 确保将Linux内核过量使用内存设置设置为1.将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后重新引导或运行sysctl vm.overcommit_memory=1使其立即生效。
  • 确保禁用Linux内核功能透明的大页面,它将以负面的方式极大地影响内存使用和延迟。 这可以通过以下命令完成:echo never > /sys/kernel/mm/transparent_hugepage/enabled.。
  • 确保在系统中设置一些交换我们建议交换与内存一样多)。 如果Linux没有交换空间,并且你的Redis实例不小心消耗了太多内存,则Redis会因内存不足而崩溃,或者Linux内核OOM杀手会杀死Redis进程。 启用交换功能后,Redis的工作方式将很糟糕,但是你可能会注意到延迟峰值,并在为时已晚之前进行一些操作。
  • 在你的实例中设置一个明确的maxmemory选项限制,以确保该实例将报告错误,而不是在接近系统内存限制时失败。 请注意,应设置maxmemory来计算Redis除数据外的开销以及分段开销。 因此,如果你认为有10 GB的可用内存,请将其设置为8或9。
  • 如果要在写入量很大的应用程序中使用Redis,则在磁盘上保存RDB文件或重写AOF日志时,Redis可能使用的内存最多是通常使用的内存的2倍。 使用的额外内存与保存过程中通过写入修改的内存页面数量成正比,因此通常与这段时间内触摸的键(或聚合类型项)的数量成比例。 确保相应地调整内存大小。
  • 在daemontools下运行时,请使用daemonize no。
  • 确保设置一些非平凡的复制backlog,这些backlog必须与Redis正在使用的内存量成比例设置。 在20 GB的实例中,只有1 MB的backlog是没有意义的。 待办事项将使复制节点很容易与主节点实例重新同步。
  • 即使禁用了持久性,除非你使用复制,否则Redis将需要执行RDB保存,除非你使用新的无盘复制功能。 如果主节点上没有磁盘使用情况,请确保启用无盘复制。
  • 如果你正在使用复制,请确保你的主节点启用了持久性,或者确保它不会在崩溃时自动重新启动:复制节点将尝试作为主节点的精确复制节点,因此,如果主节点使用空数据集重新启动,则复制节点也将被擦除。
  • 默认情况下,Redis不需要任何身份验证,并且侦听所有网络接口。 如果你将Redis暴露在互联网或攻击者可以到达的其他地方,则这是一个很大的安全问题。 例如,查看此攻击以了解它有多危险。 请检查我们的安全页面快速入门,以获取有关如何保护Redis的信息。
  • LATENCY DOCTORMEMORY DOCTOR是你的朋友。

1.2.在EC2上运行Redis

  • 使用基于HVM的实例,而不是基于PV的实例。
  • 例如,不要使用旧实例族:将m3.medium与HVM一起使用,而不是将m1.medium与PV一起使用。
  • 将Redis持久性与EC2 EBS卷结合使用时需要小心,因为有时EBS卷具有高延迟特性。
  • 如果复制节点与主节点同步时遇到问题,则可能要尝试新的无盘复制。

1.3.无需停机即可升级或重启Redis实例

Redis被设计为在服务器中运行很长时间的过程。 例如,可以使用CONFIG SET command命令修改许多配置选项,而无需重新启动。

从Redis 2.2开始,甚至可以从AOF切换到RDB快照持久性或以其他方式切换,而无需重新启动Redis。 检查CONFIG GET *命令的输出以获取更多信息。

但是,有时需要重新启动,例如为了将Redis进程升级到新版本,或者需要修改CONFIG命令当前不支持的某些配置参数。

以下步骤提供了一种非常常用的方式来避免任何停机时间。

  • 将新的Redis实例设置为当前Redis实例的从节点。 为此,你需要使用其他服务器或具有足够RAM的服务器以保持两个Redis实例同时运行。
  • 如果你使用单个服务器,请确保从节点在与主节点实例不同的端口上启动,否则从节点将完全无法启动。
  • 等待复制初始同步完成(检查从节点日志文件)。
  • 确保使用INFO,在主节点和从节点中有相同数量的键。 使用redis-cli检查从站是否按期望工作并且正在响应命令。
  • 允许从节点使用 CONFIG SET slave-read-only no
  • 配置所有客户端,以便使用新实例(即从节点)。 请注意,你可能要使用CLIENT PAUSE 命令,以确保切换期间没有客户端可以写入旧的主节点。
  • 一旦确定主节点不再收到任何查询(可以使用MONITOR命令进行检查),就可以使用SLAVEOF NO ONE命令将从机选为主机,然后关闭主节点。

如果你使用的是Redis SentinelRedis Cluster,则升级到较新版本的最简单方法是先升级一个从节点,然后执行手动故障转移以将其中一个升级后的从节点升级为主节点。最后提升一个从节点。

但是请注意,Redis Cluster 4.0在群集总线协议级别与Redis Cluster 3.2不兼容,因此在这种情况下需要大规模重启。 但是,Redis 5集群总线与Redis 4向后兼容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴 韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值