
Redis作为一款高性能的内存数据结构存储系统早已成为现代应用架构中不可或缺的组件。它不仅是缓存的代名词更是一个功能强大的数据库、消息中间件和分布式协调工具。本文将带你深入 Redis 7 的世界首先通过一个简洁的单机部署流程让你快速体验 Redis然后重点剖析其八大核心数据结构并结合丰富的实战场景助你掌握如何用最合适的“武器”解决业务问题。第一部分五分钟上手——Redis 7 单机部署在深入理论之前让我们先让 Redis 跑起来。以下是在 Linux 环境下安装 Redis 7 的精简步骤。1. 准备工作确保你的服务器已安装gcc编译环境。# 安装 gccyuminstall-ygcc2. 下载并编译安装# 创建目录并进入mkdir-p/opt/software/rediscd/opt/software/redis# 下载 Redis 7 稳定版wgethttps://download.redis.io/redis-stable.tar.gz# 解压并编译tar-xzfredis-stable.tar.gzcdredis-stablemakeinstall安装完成后redis-server服务端和redis-cli客户端等命令将位于/usr/local/bin/目录下。3. 配置与启动为了让 Redis 在后台稳定运行并支持远程连接我们需要修改其配置文件redis.conf。# 备份原配置文件cpredis.conf redis.conf.bak# 修改关键配置项vimredis.conf主要修改以下几行bind * -::*允许所有 IP 地址连接。daemonize yes开启守护进程后台运行。requirepass your_strong_password设置访问密码增强安全性。logfile /path/to/your/redis.log指定日志文件路径。dir /path/to/your/redis/data指定数据持久化目录。最后使用配置文件启动 Redis 服务# 启动服务redis-server /opt/software/redis/redis-stable/redis.conf# 使用密码连接客户端redis-cli-ayour_strong_password至此你的 Redis 7 单机实例已成功部署并运行第二部分Redis 7 八大核心数据结构及实战场景Redis 的魅力在于其丰富的数据结构。每种结构都针对特定场景进行了高度优化。下面我们将逐一解析。1. String字符串简介最基本的数据类型可以是文本或二进制数据最大能存储 512MB。常用命令SET,GET,MSET,MGET,INCR,DECR。应用场景普通缓存SET user:1001 {name:Alice, age:30}计数器利用原子操作INCR实现文章阅读量、接口限流。分布式锁SET lock_key true NX EX 10NX保证只有不存在时才设置EX设置过期时间防止死锁。2. Hash哈希简介一个键值对集合特别适合存储对象。常用命令HSET,HGET,HMSET,HMGET,HDEL,HINCRBY。应用场景对象缓存HSET user:1001 name Alice age 30比序列化整个对象为 String 更节省内存且可单独更新字段。电商购物车以用户 ID 为 key商品 ID 为 field商品数量为 value。HINCRBY cart:1001 sku_123 1可轻松实现商品数量增减。3. List列表简介一个有序的字符串链表支持在两端高效地插入和弹出元素。常用命令LPUSH,RPUSH,LPOP,RPOP,LRANGE,BLPOP。应用场景消息队列LPUSH生产消息BRPOP消费消息阻塞式实现简单的任务队列。最新消息列表如朋友圈动态、系统公告利用LPUSHLTRIM维护固定长度的最新列表。4. Set集合简介一个无序且不重复的字符串集合。常用命令SADD,SREM,SMEMBERS,SCARD,SISMEMBER以及集合运算SINTER交集、SUNION并集、SDIFF差集。应用场景标签系统/点赞SADD news:123:liked user_456记录给新闻 123 点赞的用户SISMEMBER可快速判断用户是否点过赞。共同关注/推荐好友通过SINTER计算两个用户的共同关注者通过SDIFF找出 A 关注但 B 未关注的人用于好友推荐。5. ZSet有序集合简介与 Set 类似但每个成员都关联一个分数score集合会根据分数自动排序。常用命令ZADD,ZREM,ZSCORE,ZRANGE,ZREVRANGE,ZINCRBY。应用场景排行榜这是 ZSet 最经典的应用。ZINCRBY game:rank:20240520 player_789 10为玩家增加分数ZREVRANGE game:rank:20240520 0 9 WITHSCORES即可获取 Top 10 榜单。6. Bitmap位图简介通过操作字符串的每一位bit来存储信息极其节省空间。常用命令SETBIT,GETBIT,BITCOUNT,BITPOS。应用场景用户签到用一个 Bitmap 代表一年的签到情况第 100 位为 1 表示第 100 天已签到。BITCOUNT可快速统计当月签到总天数。7. HyperLogLog基数统计简介一种概率数据结构用于估算集合中不重复元素的个数UV占用空间极小约 12KB标准误差率约为 0.81%。常用命令PFADD,PFCOUNT,PFMERGE。应用场景网站 UV 统计PFADD uv:20240520 user_id_1 user_id_2 ...PFCOUNT uv:20240520即可得到当日独立访客数无需存储所有用户 ID。8. Geo地理空间简介用于存储和查询地理位置信息。常用命令GEOADD,GEODIST,GEORADIUS。应用场景附近的人/地点GEOADD cities 116.40 39.90 beijing添加城市坐标GEORADIUS cities 116.40 39.90 100 km可查询北京 100 公里内的所有城市。