Redis的一些使用

总结一下 最近在项目中对redis的一些使用

1.查看最大内存

CONFIG GET maxmemory

我这边结果返回

  1. "maxmemory"

  2. "0"

说明:

  • maxmemory 0 表示:
    • Redis 可以使用无限内存(受限于操作系统可用内存)。

    • 不会主动根据内存使用情况触发淘汰策略(eviction policy)

    • 当系统物理内存耗尽时,可能会导致操作系统 OOM(Out-Of-Memory)杀掉 Redis 进程,或系统变慢甚至崩溃。

设置相关参数

1.动态设置 (临时生效,重启后失效)

CONFIG SET maxmemory 2gb

CONFIG SET maxmemory-policy allkeys-lru

2.修改 Redis 配置文件(永久生效)

相关说明

单位支持:b(字节)、k/kb、m/mb、g/gb,例如 512mb、2g。

maxmemory 0 是 Redis 的默认值(在大多数版本中,尤其是未显式配置时)。

2.查看多个Key是否存在

EXISTS key1 key2 key3 ...

3.单线程的定义

  • 所有客户端发送的命令会排队依次执行
  • 每个命令(如 GETSETINCR)本身是原子的
  • 不会出现两个命令同时修改同一个 key 导致数据错乱

因为高并发的场景下会出现问题

我的业务逻辑需要多个 Redis 命令组合来完成,就需要用到lua脚本,保持原子性

4.导出数据

使用 SAVEBGSAVE 导出 RDB 快照(全量二进制备份)

SAVE:同步保存,会阻塞 Redis 服务。

redis-cli SAVE

BGSAVE:异步保存,在后台 fork 子进程生成快照,推荐使用。

redis-cli BGSAVE

执行后会在 Redis 配置的 dir 目录下生成一个 dump.rdb 文件(默认名),这就是你的数据快照。

**保留所有数据类型和结构。**不能选择性导出部分 key;是二进制格式,不能直接阅读或编辑。

远程导出

因为项目的Redis是在远程服务器上面,我想从远程服务器上面导出到我电脑本地

命令使用

redis-cli -h <host> -p <port> -a <password> --rdb ./dump.rdb

录入

redis-cli -h 192.168.1.100 -p 6379 -a mysecretpassword --rdb ./redis_backup.rdb

注意无法直接从 CLI 内部把远程的 RDB 文件"下载"到本地机器

因为 Redis CLI 是一个命令行客户端,它本身不具备文件传输能力 ------ 所有命令都是发送指令给 Redis 服务端,而 SAVE/BGSAVE 生成的 dump.rdb 文件是保存在 Redis 服务器所在的主机上,不是你的本地电脑

windows版本 需要下载Redis for Windows

https://github.com/microsoftarchive/redis/releases

5.数据恢复

本来想看看是否能和mysql一直在线通过IDE导入的,发现好像不行

我遇到的几个问题,导致没办法导入倒数

1.之前配置的是AOF

**如果 AOF 文件存在,Redis 会忽略 RDB 文件,只从 AOF 恢复数据!**即使你放了 dump.rdb,只要容器内存在 appendonly.aof 文件,Redis 就会加载 AOF ------ 而你的 AOF 文件可能是空的或旧的,导致数据"没恢复"

我选择的方式是先禁用aof,导入rdb 然后再启动aof

日志查看确认

Loading RDB snapshot from disk... --RDB

DB loaded from append only file .... --AOF

2.Redis 的自动保存机制(save 配置)

我之前配置了

save 60 1

如果 60 秒内至少有 1 次修改,就自动触发 BGSAVE

我的测试操作为如下:

  1. 插入两个 key ✅
  2. 执行 BGSAVE此时生成的 RDB 包含这两个 key
  3. 删除这两个 key
  4. 重启 Redis → Redis 加载的是 步骤 2 生成的 RDB(包含 key)
  • Redis 在关闭前会自动保存最终状态 ,所以要在关闭前把备份的rdb文件复制出来

6.RedisInsight 下载使用

后面还有一些,等下次再写

相关推荐
IvorySQL15 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
怒放吧德德16 小时前
后端 Mock 实战:Spring Boot 3 实现入站 & 出站接口模拟
java·后端·设计
·云扬·16 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德16 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
biyezuopinvip16 小时前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
脸大是真的好~16 小时前
EasyExcel的使用
java·excel
小宋102116 小时前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python
惊讶的猫16 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
JavaGuide16 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot