当前位置: 首页 > ds >正文

redis基本操作和基础命令,另外附上如何使用命令导出redis数据库及反馈的正确报文,rdb

Redis(Remote Dictionary Server,远程字典服务)是一个开源的键值存储系统,通常被用作数据库、缓存或消息传递系统。以下是 Redis 的一些基本操作和基础命令,这些命令可以帮助你进行日常的运维工作。

1. 连接与基本信息

  • redis-cli:这是 Redis 的命令行客户端工具,用于连接 Redis 服务器。

    redis-cli -h [hostname] -p [port] -a [password]
    
    • -h:指定 Redis 服务器的主机名或 IP 地址,默认为 127.0.0.1
    • -p:指定 Redis 服务器的端口号,默认为 6379
    • -a:指定密码(如果 Redis 服务器设置了密码)。
  • INFO:查看 Redis 服务器的详细信息,包括运行状态、内存使用情况、客户端连接数等。

    INFO
    

2. 键操作

  • SET key value:设置键的值。

    SET name "Kimi"
    
  • GET key:获取键的值。

    GET name
    
  • DEL key:删除键。

    DEL name
    
  • EXISTS key:检查键是否存在,返回 1 表示存在,0 表示不存在。

    EXISTS name
    
  • TTL key:获取键的剩余生存时间(以秒为单位),如果键没有设置过期时间,则返回 -1

    TTL name
    
  • PERSIST key:移除键的过期时间,使其成为持久键。

    PERSIST name
    

3. 字符串操作

  • SET key value [EX seconds] [PX milliseconds]:设置键的值,并可设置过期时间。

    SET name "Kimi" EX 60  # 设置键 name,值为 Kimi,过期时间为 60 秒
    
  • INCR key:将键的值加 1(键的值必须是整数)。

    INCR counter
    
  • DECR key:将键的值减 1(键的值必须是整数)。

    DECR counter
    

4. 列表操作

  • LPUSH key value1 [value2]:将一个或多个值插入到列表头部。

    LPUSH list1 "item1" "item2"
    
  • RPUSH key value1 [value2]:将一个或多个值插入到列表尾部。

    RPUSH list1 "item3" "item4"
    
  • LPOP key:移除并返回列表的第一个元素。

    LPOP list1
    
  • RPOP key:移除并返回列表的最后一个元素。

    RPOP list1
    
  • LRANGE key start stop:获取列表中指定范围的元素。

    LRANGE list1 0 -1  # 获取列表 list1 的所有元素
    

5. 集合操作

  • SADD key member1 [member2]:向集合中添加一个或多个成员。

    SADD set1 "item1" "item2"
    
  • SMEMBERS key:获取集合中的所有成员。

    SMEMBERS set1
    
  • SREM key member:从集合中移除一个成员。

    SREM set1 "item1"
    

6. 哈希操作

  • HSET key field value:为哈希表中的字段设置值。

    HSET user1 name "Kimi" age 25
    
  • HGET key field:获取哈希表中字段的值。

    HGET user1 name
    
  • HGETALL key:获取哈希表中的所有字段和值。

    HGETALL user1
    

7. 事务操作

  • MULTI:开始一个事务。

    MULTI
    
  • EXEC:执行事务中的所有命令。

    EXEC
    
  • DISCARD:取消事务中的所有命令。

    DISCARD
    

8. 持久化相关命令

  • SAVE:触发一次 RDB 持久化操作(阻塞当前客户端)。

    SAVE
    
  • BGSAVE:在后台触发一次 RDB 持久化操作(不阻塞当前客户端)。

    BGSAVE
    
  • LASTSAVE:返回上次成功执行 RDB 持久化的时间戳。

    LASTSAVE
    

9. 其他常用命令

  • FLUSHDB:清空当前数据库中的所有键。

    FLUSHDB
    
  • FLUSHALL:清空所有数据库中的所有键。

    FLUSHALL
    
  • KEYS pattern:查找所有符合给定模式的键。

    KEYS user*
    
  • TYPE key:返回键的类型(如 stringlistsethash 等)。

    TYPE name
    

这些是 Redis 的一些基础命令和操作,掌握它们可以帮助你更好地管理和维护 Redis 实例。在实际运维中,建议结合 Redis 的文档和监控工具,以更好地了解 Redis 的运行状态和性能表现。

导出redis中数据成rdb文件

在 Redis 中,可以通过以下几种方式将所有数据导出,具体取决于你的需求和 Redis 的配置。

1. 使用 SAVEBGSAVE 命令

Redis 提供了 SAVEBGSAVE 命令来生成 RDB(Redis Database Backup)文件,该文件是 Redis 数据的持久化存储格式。

  • SAVE 命令:会阻塞当前服务器进程,直到数据持久化操作完成。不推荐在生产环境中使用,因为它会阻塞其他操作。

    SAVE
    
  • BGSAVE 命令:会在后台异步执行数据持久化操作,不会阻塞服务器进程。这是推荐的方式。

    BGSAVE
    

执行 BGSAVE 后,Redis 会在默认的持久化文件路径(通常是 dump.rdb,具体路径可以在配置文件中指定)生成一个 RDB 文件。你可以通过以下命令查看默认的 RDB 文件路径:

CONFIG GET dir

2. 使用 DUMP 命令

DUMP 命令可以将单个键的值序列化为一个字符串,可以用于导出单个键的数据。如果你需要导出所有键的数据,可以通过以下步骤实现:

  1. 使用 KEYS *SCAN 命令获取所有键。
  2. 对每个键使用 DUMP 命令,将序列化后的数据保存到文件中。

例如:

redis-cli KEYS * | xargs -I {} redis-cli DUMP {} > /path/to/output/file

注意:KEYS * 在大数据库中可能会阻塞服务器,建议使用 SCAN 命令代替。

3. 使用 redis-cli--rdb 选项

Redis 提供了一个工具 redis-cli,可以通过以下命令直接将 Redis 数据导出为 RDB 文件:

redis-cli --rdb /path/to/output.rdb

这个命令会连接到 Redis 服务器,执行 BGSAVE 操作,并将生成的 RDB 文件保存到指定路径。

4. 使用 AOF(Append Only File)持久化

如果你的 Redis 配置了 AOF 持久化(Append Only File),可以通过以下命令将 AOF 文件重写为 RDB 文件:

BGREWRITEAOF

然后,你可以从 AOF 文件中恢复数据,或者将其转换为 RDB 文件。

我使用的是redis-cli --rdb的命令

  1. 打开终端或命令行工具
    打开你的终端(Linux/Mac)或命令提示符/PowerShell(Windows)。

  2. 使用 redis-cli 命令导出数据
    使用以下命令格式:

    redis-cli -h <host> -p <port> -a <password> --rdb <output_file>
    

    其中:

    • <host> 是 Redis 服务器的主机地址(如果是本地服务器,通常是 localhost127.0.0.1)。
    • <port> 是 Redis 服务器的端口号(在你的例子中是 8015)。
    • <password> 是 Redis 的密码(在你的例子中是 ZkhwRS321)。
    • <output_file> 是你希望保存 RDB 文件的路径和文件名。

    例如,如果你的 Redis 服务运行在本地,命令如下:

    redis-cli -h localhost -p 1111 -a xxxx --rdb /root/output.rdb
    

    如果 Redis 服务运行在远程服务器,将 <host> 替换为服务器的 IP 地址或域名。

  3. 检查输出文件
    命令执行完成后,检查指定的输出路径是否生成了 .rdb 文件。例如:

    ls /root/output.rdb
    

注意事项

  • 密码安全性:在命令行中直接输入密码可能会暴露密码信息。如果可能,尽量避免在命令行中直接暴露密码。你可以通过配置文件或环境变量来管理密码。
  • 权限问题:确保你有权限访问 Redis 服务器,并且有足够的权限将文件写入指定的输出路径。
  • 网络问题:如果你的 Redis 服务运行在远程服务器上,确保网络连接正常,并且防火墙允许从你的客户端访问 Redis 服务的端口(1111)。
  • Redis 版本:确保你的 Redis 版本支持 --rdb 选项。这个功能在较新的 Redis 版本中可用。
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
sending REPLCONF capa eof
sending REPLCONF rdb-only 1
SYNC sent to master, writing bytes of bulk transfer until EOF marker to '/root/output.rdb'
Transfer finished with success after 3873758 bytes

在这里插入图片描述
,Redis 数据已经成功导出到 /root/output.rdb 文件中。以下是输出信息的详细解释和后续步骤:

输出信息解释

  1. 警告信息

    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    

    这是一个安全警告,提示在命令行中直接使用密码可能会导致密码泄露。建议在生产环境中避免直接在命令行中使用密码,可以考虑以下替代方案:

    • 使用 Redis 配置文件(redis.conf)来管理密码。
    • 使用环境变量来存储密码。
    • 使用更安全的认证方式(如使用 SSL/TLS 连接)。
  2. 同步过程

    sending REPLCONF capa eof
    sending REPLCONF rdb-only 1
    SYNC sent to master, writing bytes of bulk transfer until EOF marker to '/root/output.rdb'
    Transfer finished with success after 3873758 bytes
    

    这些信息表明:

    • redis-cli 向 Redis 服务器发送了同步请求(SYNC)。
    • 数据正在从 Redis 服务器传输到本地文件 /root/output.rdb
    • 数据传输成功完成,总共传输了 3873758 字节。

验证导出文件

为了确保数据导出成功,你可以进行以下验证:

  1. 检查文件是否存在

    ls -lh /root/output.rdb
    

    你应该会看到类似以下的输出:

    -rw-r--r-- 1 root root 3.8M May 22 12:34 /root/output.rdb
    
  2. 检查文件内容
    RDB 文件是二进制格式,不能直接用文本编辑器查看。但你可以使用 Redis 的 RESTORE 命令来验证文件内容是否正确。例如:

    redis-cli -h 127.0.0.1 -p 1111 -a xxxx RESTORE testkey 0 < /root/output.rdb
    

    如果命令执行成功,说明 RDB 文件是有效的。

后续操作

  1. 备份文件
    如果需要将 RDB 文件备份到其他位置,可以使用 scprsync 等工具:

    scp /root/output.rdb user@remote_host:/path/to/backup/
    
  2. 恢复数据
    如果需要将 RDB 文件恢复到其他 Redis 实例,可以将文件复制到目标 Redis 的数据目录,并重启 Redis 服务:

    cp /root/output.rdb /path/to/redis/data/dump.rdb
    systemctl restart redis
    
  3. 清理临时文件
    如果不再需要 /root/output.rdb 文件,可以将其删除:

    rm /root/output.rdb
    

总结

此时Redis 数据已经成功导出到 /root/output.rdb 文件中。可以根据需要进行备份或恢复操作。如果在后续操作中遇到任何问题。欢迎一次交流。

http://www.xdnf.cn/news/8151.html

相关文章:

  • 飞翔的小燕子-第16届蓝桥第6次STEMA测评Scratch真题第1题
  • TCP原理解析
  • 2025年高防IP与SCDN全面对比:如何选择最佳防护方案?
  • 智慧交通的核心引擎-车牌识别接口-车牌识别技术-新能源车牌识别
  • Postgresql14+Repmgr部署
  • 【漫话机器学习系列】272.K近邻中K的大小(K-NN Neighborhood Size)
  • 通过现代数学语言重构《道德经》核心概念体系,形成一个兼具形式化与启发性的理论框架
  • C# Unity容器详解
  • Google Prompt Tuning:文本嵌入优化揭秘
  • 小米15周年战略新品发布会:多领域创新突破,构建科技生态新蓝图
  • HUAWEI华为MateBook D 14 2021款i5,i7集显非触屏(NBD-WXX9,NbD-WFH9)原装出厂Win10系统
  • JMeter 教程:响应断言
  • 【笔试强训day39】
  • 自制操作系统day7(获取按键编码、FIFO缓冲区、鼠标、键盘控制器(Keyboard Controller, KBC)、PS/2协议)
  • brepgen 源码 笔记2
  • 巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
  • CaDDN- Categorical Depth Distribution Network for Monocular 3D Object Detection
  • 比斯特自动化|移动电源全自动点焊机:高效点焊助力移动电源制造
  • 【ffmpeg】硬软编码
  • 第十周作业
  • 从单链表 list 中删除第 i 个元素--Python
  • GaussDB(PostgreSQL)查询执行计划参数解析技术文档
  • 代码随想录算法训练营第四十六四十七天
  • Ubuntu/Linux 服务器上调整系统时间(日期和时间)
  • 零基础入门:MinerU 和 PyTorch、CUDA的关系
  • Facebook广告如何投放保健品类别?
  • Python爬虫(33)Python爬虫高阶:动态页面破解与验证码OCR识别全流程实战
  • Second-Brain 如何用 NocoBase 为金融企业构建 AI 系统
  • Nginx 代理Https服务
  • python调wfdb库读心电数据库的注释文件中NUL问题