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

简介:

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\n$3\r\nSET\r\n$3\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开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。 
 
相关文章
|
10月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
11月前
|
存储 运维 安全
运维知识沉淀工具深度解析:从结构设计到落地实践全拆解
运维知识沉淀工具助力团队将零散经验结构化存储,实现问题处理路径标准化、知识复用化。通过标签、模板与自动化调取机制,让每次处理都留下可复用资产,提升团队协同效率与系统稳定性。
|
10月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
521 86
|
人工智能 OLAP 数据处理
解锁数仓内AI流水线,AnalyticDB Ray基于多模ETL+ML提效开发与运维
AnalyticDB Ray 是AnalyticDB MySQL 推出的全托管Ray服务,基于开源 Ray 的丰富生态,经过多模态处理、具身智能、搜索推荐、金融风控等场景的锤炼,对Ray内核和服务能力进行了全栈增强。
|
12月前
|
SQL 运维 自然语言处理
Dataphin智能化重磅升级!编码难题一扫光,开发运维更高效!
Dataphin重磅推出三大核心智能化能力:智能代码助手提升SQL开发效率;智能运维助手实现移动化任务管理;智能分析通过自然语言生成SQL,助力数据价值释放。未来将持续开放智能ETL、安全助手等能力,助力企业构建高效、稳定的数据资产体系。
791 0
|
10月前
|
机器学习/深度学习 人工智能 运维
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
这篇文章系统性地阐述了 AI 原生时代下,面向技术风险领域的智能体系统(DeRisk)的架构设计、核心理念、关键技术演进路径与实践落地案例。
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
|
10月前
|
存储 缓存 监控
Redis分区的核心原理与应用实践
Redis分区通过将数据分散存储于多个节点,提升系统处理高并发与大规模数据的能力。本文详解分区原理、策略及应用实践,涵盖哈希、范围、一致性哈希等分片方式,分析其适用场景与性能优势,并探讨电商秒杀、物联网等典型用例,为构建高性能、可扩展的Redis集群提供参考。
483 0
|
12月前
|
存储 缓存 NoSQL
Redis 核心知识与项目实践解析
本文围绕 Redis 展开,涵盖其在项目中的应用(热点数据缓存、存储业务数据、实现分布式锁)、基础数据类型(string 等 5 种)、持久化策略(RDB、AOF 及混合持久化)、过期策略(惰性 + 定期删除)、淘汰策略(8 种分类)。 还介绍了集群方案(主从复制、哨兵、Cluster 分片)及主从同步机制,分片集群数据存储的哈希槽算法。对比了 Redis 与 Memcached 的区别,说明了内存用完的情况及与 MySQL 数据一致性的保证方案。 此外,详解了缓存穿透、击穿、雪崩的概念及解决办法,如何保证 Redis 中是热点数据,Redis 分布式锁的实现及问题解决,以及项目中分布式锁
325 1
|
12月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
12月前
|
运维 监控 负载均衡
高效运维实践:常见问题的应对策略与实践经验
本文探讨了运维工作中的五大核心挑战及应对策略,涵盖负载均衡优化、数据库性能提升、系统监控预警、容器化与微服务运维等方面,旨在帮助企业提升系统稳定性与运维效率。