Redis 从入门到精通(一):简介、安装与配置

张开发
2026/4/11 1:51:34 15 分钟阅读

分享文章

Redis 从入门到精通(一):简介、安装与配置
系列导读本系列将带领大家系统学习 Redis从基础入门到高级应用涵盖数据类型、集群、安全优化等核心内容。文章目录一、Redis 简介1.1 什么是 Redis1.2 Redis 发展历程二、Redis 核心特性2.1 性能极高2.2 丰富的数据类型2.3 原子性操作2.4 持久化机制2.5 主从复制2.6 发布/订阅模式三、Redis 安装3.1 Linux 安装Ubuntu/Debian3.2 Linux 源码编译安装3.3 Windows 安装3.4 Docker 安装3.5 客户端连接四、Redis 配置详解4.1 配置文件位置4.2 核心配置项4.3 运行时配置五、第一个 Redis 程序5.1 基础操作5.2 计数器示例5.3 Java 示例5.4 Python 示例六、Redis 桌面管理工具6.1 常用 GUI 工具6.2 RedisInsight 安装总结一、Redis 简介1.1 什么是 RedisRedisRemote Dictionary Server是一个开源的内存数据库遵守 BSD 协议它提供了一个高性能的键值key-value存储系统。┌─────────────────────────────────────────────────────────────┐ │ Redis 定位 │ ├─────────────────────────────────────────────────────────────┤ │ ️ 内存数据库 → 数据存储在内存中访问速度极快 │ │ 键值存储 → 简单的 key-value 映射 │ │ 多种数据类型 → 字符串、列表、集合、有序集合、哈希 │ │ 跨平台 → Linux、macOS、Windows 支持 │ └─────────────────────────────────────────────────────────────┘1.2 Redis 发展历程年份版本重要特性20091.0首次发布20122.6Lua 脚本支持20153.0Redis Cluster 支持20206.0多线程 I/O、ACL 安全20227.0Redis Functions、Sharded Pub/Sub二、Redis 核心特性2.1 性能极高Redis 以其极高的性能而著称能够支持每秒数十万次的读写操作操作类型每秒次数读操作110,000 次/秒写操作81,000 次/秒 高性能原因 → 数据存储在内存中访问速度极快 → 单线程模型避免锁竞争开销 → 高效的事件驱动模型 → 简洁的数据结构操作复杂度 O(1)2.2 丰富的数据类型Redis 不仅支持基本的键值存储还提供了丰富的数据类型数据类型说明典型应用场景String字符串、整数、浮点数缓存、计数器、SessionHash键值对集合存储对象、用户信息List有序列表消息队列、最新列表Set无序集合标签、好友列表ZSet有序集合排行榜、权重队列Bitmaps位图用户签到、统计HyperLogLog基数统计UV 统计Geospatial地理位置附近的人、坐标查询Streams消息队列实时消息处理2.3 原子性操作Redis 的所有操作都是原子性的这意味着操作要么完全执行要么完全不执行。✅ 原子性保证 → INCR 计数器不会出现并发问题 → SETNX 分布式锁实现简单可靠 → Lua 脚本执行期间不会被其他命令打断2.4 持久化机制Redis 支持数据的持久化可以将内存中的数据保存到磁盘中持久化方式说明特点RDB定时快照文件小恢复快AOF追加日志数据完整文件较大混合结合两者推荐生产使用2.5 主从复制Redis 支持 master-slave 模式的数据备份┌─────────┐ 复制 ┌─────────┐ │ Master │ ──────────────────► │ Slave │ │ 主节点 │ │ 从节点 │ └─────────┘ └─────────┘ │ └──────────────────────────► ┌─────────┐ │ Slave │ └─────────┘2.6 发布/订阅模式Redis 内置了发布/订阅模式Pub/Sub允许客户端之间通过消息传递进行通信发布者 (Publisher) 频道 (Channel) 订阅者 (Subscriber) │ │ │ │ PUBLISH channel msg │ │ ├──────────────────────┼───────────────────┤ │ │ │ │ │ ◄────────────────┤三、Redis 安装3.1 Linux 安装Ubuntu/Debian# 更新软件源sudoaptupdate# 安装 Redissudoaptinstallredis-server# 检查安装redis-server--version# 启动 Redissudosystemctl start redis# 设置开机自启sudosystemctlenableredis# 查看 Redis 状态sudosystemctl status redis3.2 Linux 源码编译安装# 下载 Redis 源码wgethttp://download.redis.io/releases/redis-7.2.4.tar.gz# 解压tar-xzvfredis-7.2.4.tar.gzcdredis-7.2.4# 编译make# 安装sudomakeinstall# 启动 Redis使用默认配置cdsrc ./redis-server# 启动 Redis使用自定义配置./redis-server../redis.conf3.3 Windows 安装# 方法一使用 WSL推荐# 在 Windows 上安装 WSL2然后按照 Linux 方法安装# 方法二使用 Memurai 或 Redis Windows 版# 下载https://github.com/tporadowski/redis/releases3.4 Docker 安装# 拉取镜像dockerpull redis:latest# 运行 Redis 容器dockerrun-d--namemyredis\-p6379:6379\redis:latest# 运行并持久化数据dockerrun-d--namemyredis\-p6379:6379\-v/myredis/data:/data\redis:latest redis-server--appendonlyyes3.5 客户端连接# 启动 Redis 客户端redis-cli# 连接远程 Redisredis-cli-h192.168.1.100-p6379# 测试连接redis-cliping# 返回PONG# 认证连接如果设置了密码redis-cli-ayourpassword四、Redis 配置详解4.1 配置文件位置操作系统默认配置路径Linux/etc/redis/redis.confmacOS/usr/local/etc/redis.confWindowsredis.windows.conf4.2 核心配置项# 基本配置 # 是否以守护进程运行 daemonize no # 监听端口 port 6379 # 绑定地址0.0.0.0 允许外部访问 bind 127.0.0.1 # 连接超时时间秒 timeout 300 # 日志级别 loglevel notice # 数据库数量 databases 16 # 持久化配置 # RDB 快照条件 save 900 1 # 900秒内至少1个key变化 save 300 10 # 300秒内至少10个key变化 save 60 10000 # 60秒内至少10000个key变化 # RDB 文件名 dbfilename dump.rdb # 数据目录 dir ./ # 内存配置 # 最大内存限制 maxmemory 2gb # 内存淘汰策略 maxmemory-policy allkeys-lru # 安全配置 # 连接密码 requirepass yourpassword # AOF 持久化 # 启用 AOF appendonly yes # AOF 文件名 appendfilename appendonly.aof # 同步策略 appendfsync everysec # everysec / always / no4.3 运行时配置# 查看所有配置redis-cli CONFIG GET *# 查看单个配置redis-cli CONFIG GET maxmemory# 修改配置运行时redis-cli CONFIG SET maxmemory 4gb# 修改配置重启后生效redis-cli CONFIG SET requirepass newpassword五、第一个 Redis 程序5.1 基础操作# 启动客户端redis-cli# 设置键值对redis-cliSET mykeyHello RedisOK# 获取值redis-cliGET mykeyHello Redis# 设置带过期时间的键秒redis-cliSETEX cachekey60cached dataOK# 仅当键不存在时设置redis-cliSETNX newkeynew value(integer)1# 查看所有键redis-cliKEYS *1)mykey2)newkey# 删除键redis-cliDEL mykey(integer)1# 检查键是否存在redis-cliEXISTS mykey(integer)05.2 计数器示例# 设置计数器redis-cliSET counter0OK# 递增redis-cliINCR counter(integer)1redis-cliINCR counter(integer)2# 递增指定数值redis-cliINCRBY counter10(integer)12# 递减redis-cliDECR counter(integer)115.3 Java 示例importredis.clients.jedis.Jedis;publicclassRedisDemo{publicstaticvoidmain(String[]args){// 连接 RedisJedisjedisnewJedis(localhost,6379);// 设置密码如果需要// jedis.auth(password);// 字符串操作jedis.set(greeting,Hello Redis!);System.out.println(jedis.get(greeting));// 计数器jedis.set(visits,0);jedis.incr(visits);System.out.println(Visits: jedis.get(visits));// 哈希操作jedis.hset(user:1,name,张三);jedis.hset(user:1,age,25);System.out.println(jedis.hgetAll(user:1));// 列表操作jedis.lpush(tasks,task1);jedis.lpush(tasks,task2);System.out.println(jedis.lrange(tasks,0,-1));// 关闭连接jedis.close();}}5.4 Python 示例importredis# 连接 Redisrredis.Redis(hostlocalhost,port6379,decode_responsesTrue)# 字符串操作r.set(greeting,Hello Redis!)print(r.get(greeting))# 计数器r.set(visits,0)r.incr(visits)print(fVisits:{r.get(visits)})# 哈希操作r.hset(user:1,mapping{name:张三,age:25})print(r.hgetall(user:1))# 列表操作r.lpush(tasks,task1,task2)print(r.lrange(tasks,0,-1))# 设置过期时间r.setex(temp_key,60,temporary data)六、Redis 桌面管理工具6.1 常用 GUI 工具工具平台说明Redis Desktop Manager跨平台功能强大的图形界面Another Redis Desktop Manager跨平台开源免费RedisInsight跨平台Redis 官方工具phpRedisAdminWebPHP 编写的 Web 管理6.2 RedisInsight 安装# Docker 方式dockerrun-d--nameredisinsight\-p8001:8001\-vredisinsight:/db\redislabs/redisinsight:latest访问 http://localhost:8001 即可使用。总结本文我们学习了✅Redis 简介高性能内存数据库键值存储系统✅核心特性丰富数据类型、原子操作、持久化、主从复制✅安装配置Linux、Docker、源码编译✅配置文件核心配置项详解✅基础操作SET/GET/KEYS 等基本命令✅多语言客户端Java、Python 示例下篇预告(Redis 从入门到精通二数据类型详解)将深入讲解 Redis 的 8 种数据类型及适用场景。作者刘~浪地球系列Redis 从入门到精通一更新时间2026-04-02

更多文章