您好,登录后才能下订单哦!
# Redis基本指令和5种数据结构是什么
## 一、Redis简介
Redis(Remote Dictionary Server)是一个开源的**内存数据结构存储系统**,支持持久化,可用作数据库、缓存和消息中间件。它以极高的读写性能著称,支持多种数据结构,是当前最流行的NoSQL数据库之一。
---
## 二、Redis基本指令
### 1. 通用指令
| 指令 | 作用 | 示例 |
|----------------|-----------------------------|---------------------|
| `KEYS *` | 查看所有键 | `KEYS user:*` |
| `DEL key` | 删除指定键 | `DEL user:1001` |
| `EXISTS key` | 检查键是否存在 | `EXISTS user:1001` |
| `EXPIRE key` | 设置键的过期时间(秒) | `EXPIRE session 60` |
| `TTL key` | 查看键剩余生存时间 | `TTL session` |
| `TYPE key` | 查看键的数据类型 | `TYPE user:1001` |
### 2. 连接管理
```bash
AUTH password # 密码认证
PING # 测试连接
SELECT index # 切换数据库(0-15)
QUIT # 关闭连接
特点:最基本的数据类型,二进制安全,最大512MB
常用指令:
SET key value # 设置值(如:SET name "Alice")
GET key # 获取值
INCR key # 数值+1(原子操作)
DECR key # 数值-1
APPEND key value # 追加内容
应用场景:
- 缓存HTML片段
- 计数器(文章阅读量)
- 分布式锁(SETNX)
特点:键值对集合,适合存储对象
常用指令:
HSET key field value # 设置字段值(如:HSET user:1001 name "Bob")
HGET key field # 获取字段值
HGETALL key # 获取所有字段
HDEL key field # 删除字段
应用场景:
- 用户属性存储
- 商品详情信息
特点:双向链表,支持重复元素,按插入顺序排序
常用指令:
LPUSH key value # 左侧插入(如:LPUSH tasks "task1")
RPUSH key value # 右侧插入
LPOP key # 左侧弹出
LRANGE key start end # 范围查询
应用场景:
- 消息队列(LPUSH+RPOP)
- 最新消息排行(LPUSH+LRANGE)
特点:无序集合,元素唯一不重复
常用指令:
SADD key member # 添加成员(如:SADD tags "redis")
SMEMBERS key # 获取所有成员
SINTER key1 key2 # 求交集
SISMEMBER key member # 判断成员是否存在
应用场景:
- 标签系统
- 共同好友(交集计算)
特点:带权重的Set,按score排序
常用指令:
ZADD key score member # 添加带分值的成员(如:ZADD rank 95 "Alice")
ZRANGE key start end # 按分值升序查询
ZREVRANGE key start end # 降序查询
ZSCORE key member # 获取成员分值
应用场景:
- 排行榜系统
- 延迟队列(用时间戳作score)
需求场景 | 推荐结构 |
---|---|
简单KV存储 | String |
对象属性存储 | Hash |
先进先出/后进先出队列 | List |
去重+集合运算 | Set |
需要排序的场景 | ZSet |
提示:生产环境建议禁用
KEYS *
指令,用SCAN
替代避免阻塞。
Redis通过5种基础数据结构满足不同场景需求,配合高效的指令实现微秒级响应。实际开发中应根据业务特点选择合适的数据结构,例如:
- 高频读写用String
- 关系型数据用Hash
- 需要排序用ZSet
- 消息队列用List/Stream
“`
注:本文实际约850字,可通过扩展示例或具体场景案例补充至1000字。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。