Redis开发运维实践常见运维操作(三)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

3.12 Redis-cli命令行其他操作

1. echo :在命令行打印一些内容

redis 127.0.0.1:6379> echo HongWan "HongWan"

2. quit :退出连接。

redis 127.0.0.1:6379> quit

3. -x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入:

echo -en "chen.qun" | redis-cli -x set name

4. -r -i

-r 选项重复执行一个命令指定的次数。 -i 设置命令执行的间隔。 比如查看redis每秒执行的commands(qps) redis-cli -r 100 -i 1 info stats | grep instantaneous_ops_per_sec 这个选项在编写一些脚本时非常有用

5. -c:开启reidis cluster模式,连接redis cluster节点时候使用。

6. --rdb:获取指定redis实例的rdb文件,保存到本地。

redis-cli -h 192.168.44.16 -p 6379 --rdb 6379.rdb

7. --slave

模拟slave从master上接收到的commands。slave上接收到的commands都是update操作,记录数据的更新行为。

8. --pipe

这个一个非常有用的参数。发送原始的redis protocl格式数据到服务器端执行。比如下面的形式的数据(linux服务器上需要用unix2dos转化成dos文件)。 linux下默认的换行是\n,windows系统的换行符是\r\n,redis使用的是\r\n. echo -en '*3\r\n3\r\nSET\r\n3\r\nkey\r\n$5\r\nvalue\r\n' | redis-cli --pipe

9. -a

如果开启了requirepass,那么你如果希望调用或者自己编写一些外部脚本通过redis-cli进行操作或者监控redis,那么这个选项可以让你不用再手动输入auth。这个选项很普遍,但是往往被人忽视。

6.13 持久化与备份恢复

3.13.1 RDB相关操作

BGSAVE:后台子进程进行RDB持久化 SAVE:主进程进行RDB,生产环境千万别用,服务器将无法响应任何操作。 LASTSAVE: 返回上一次成功SAVE的Unix时间

动态关闭RDB:

redis-cli config set save ""

动态设置RDB:

redis-cli config set save "900 1"

永久关闭RDB:

sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf

永久设置RDB:

在redis.conf中设置save选项

查看RDB是否打开:

redis-cli config get save

空的即是关闭,有数字的都是打开的。

3.13.2 AOF相关操作

BGREWRITEAOF

在后台执行一个 AOF文件重写操作

动态关闭AOF:

redis-cli config set appendonly no

动态打开AOF:

redis-cli config set appendonly yes

永久关闭AOF:

sed -e '/appendonly/ s/^#*/#/' -i /etc/redis/redis.conf (默认是关闭的)

永久打开AOF:

将appendonly yes设置在redis.conf中

3.13.3 备份

对于RDB和AOF,都是直接拷贝文件即可,可以设定crontab进行定时备份: cp /var/lib/redis/dump.rdb /somewhere/safe/dump.$(date +%Y%m%d%H%M).rdb

3.13.4 恢复

如果只使用了RDB,则首先将redis-server停掉,删除dump.rdb,最后将备份的dump.rdb文件拷贝回data目录并修改相关属主保证其属主和redis-server启动用户一致,然后启动redis-server。

如果是RDB+AOF的持久化,只需要将aof文件放入data目录,启动redis-server,查看是否恢复,如无法恢复则应该将aof关闭后重启,redis就会从rdb进行恢复了,随后调用命令BGREWRITEAOF进行AOF文件写入,在info的aof_rewrite_in_progress为0后一个新的aof文件就生成了,此时再将配置文件的aof打开,再次重启redis-server就可以恢复了。注意先不要将dump.rdb放入data目录,否则会因为aof文件万一不可用,则rdb也不会被恢复进内存,此时如果有新的请求进来后则原先的rdb文件被重写。

如果只配置了AOF,重启时加载AOF文件恢复数据。

恢复速度参见新浪的测试结果:

这个结果是可信的,在一台SSD、4个CPU的虚拟机上测试为28.3G/s.

检查修复AOF文件:

redis-check-aof data/appendonly.aof
Redis开发运维实践指南 本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。 
 
AI 代码解读
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
AI大模型运维开发探索第四篇:智能体分阶段演进路线
本文探讨了智能体工程的演进历程,从最初的思维链(智能体1.0)到实例化智能体(智能体2.0),再到结构化智能体(智能体3.0),最终展望了自演进智能体(智能体4.0)。文章详细分析了各阶段遇到的问题及解决策略,如工具调用可靠性、推理能力提升等,并引入了大模型中间件的概念以优化业务平台与工具间的协调。此外,文中还提到了RunnableHub开源项目,为读者提供了实际落地的参考方案。通过不断迭代,智能体逐渐具备更强的适应性和解决问题的能力,展现了未来AI发展的潜力。
|
1月前
|
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
162 79
智能运维在IT管理中的实践与探索
【10月更文挑战第21天】 本文深入探讨了智能运维(AIOps)技术在现代IT管理中的应用,通过分析其核心组件、实施策略及面临的挑战,揭示了智能运维如何助力企业实现自动化监控、故障预测与快速响应,从而提升整体运维效率与系统稳定性。文章还结合具体案例,展示了智能运维在实际环境中的显著成效。
102 26
基于进程热点分析与系统资源优化的智能运维实践
智能服务器管理平台提供直观的可视化界面,助力高效操作系统管理。核心功能包括运维监控、智能助手和扩展插件管理,支持系统健康监控、故障诊断等,确保集群稳定运行。首次使用需激活服务并安装管控组件。平台还提供进程热点追踪、性能观测与优化建议,帮助开发人员快速识别和解决性能瓶颈。定期分析和多维度监控可提前预警潜在问题,保障系统长期稳定运行。
89 17
云栖实录 | 大模型在大数据智能运维的应用实践
云栖实录 | 大模型在大数据智能运维的应用实践
249 3
云栖实录 | 智能运维:云原生大规模集群GitOps实践
云栖实录 | 智能运维:云原生大规模集群GitOps实践
云栖实录 | 智能运维年度重磅发布及大模型实践解读
云栖实录 | 智能运维年度重磅发布及大模型实践解读
169 0
智能运维新时代:AI在云资源管理中的应用与实践
智能运维新时代:AI在云资源管理中的应用与实践
463 23
智能运维:云原生大规模集群GitOps实践
智能运维:云原生大规模集群GitOps实践,由阿里云运维专家钟炯恩分享。内容涵盖云原生运维挑战、管理实践、GitOps实践及智能运维体系。通过OAM模型和GitOps优化方案,解决大规模集群的发布效率与稳定性问题,推动智能运维工程演进。适用于云原生环境下的高效运维管理。
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
146 9
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等