[TOC] #### 1. 前言 --- 上一讲认识了五大数据结构,这一讲把常用命令跑一遍 建议你打开终端,进入 `Redis` 交互式命令行界面,边看边敲。光看不练,等于没学! ```bash redis-cli ``` #### 2. Key 操作 --- 这几个命令不管什么数据类型都能用,先记住: ```bash keys * # 查看所有 key type name # 查看数据类型 del name # 删除 ttl name # 还剩多久过期(-1=没设过期,-2=已过期) expire name 60 # 60秒后自动过期 exists name # key 存不存在(1=存在,0=不存在) ``` 注意:`keys *` 当数据量大的时候会卡死 Redis,生产环境用 `scan` 替代,这个坑后面会讲 #### 3. String 字符串 --- ```bash set name zhangsan get name set count 10 incr count # 变成11 incrby count 5 # 变成16 set code 123456 ex 300 # 验证码,300秒过期 setnx lock 1 # 不存在才设置(分布式锁的基础) ``` #### 4. Hash 哈希 --- ```bash hset user:1 name liang age 25 gender 1 hget user:1 name hgetall user:1 hdel user:1 gender hincrby user:1 age 2 hlen user:1 ``` #### 5. List 列表 --- ```bash lpush task_list task1 task2 task3 # 依次从左侧推入 lrange task_list 0 -1 # 查看列表元素 rpush task_list task4 # 右侧推入 lpop task_list # 左边弹出 rpop task_list # 右边弹出 blpop task_list 30 # 阻塞弹出,没数据就等30秒 ``` #### 6. Set 集合 --- ```bash sadd tags python java go # 往集合中推入数据 smembers tags # 全部元素 sismember tags python # python 在不在 srem tags go # 删除 go scard tags # 数量 sinter set1 set2 # 交集 sunion set1 set2 # 并集 sdiff set1 set2 # 差集 ``` #### 7. ZSet 有序集合 --- ```bash zadd rank 100 liang 90 lisi del rank # 删除有序集合 zrevrange rank 0 -1 withscores # 从高到低 zscore rank liang # 查分数 zrevrank rank liang # 查排名(0=第一名) zincrby rank 10 lisi # 给 lisi 加10分 ``` #### 8. 管理命令 --- ```bash info # Redis 整体状态 info memory # 内存使用情况 dbsize # 当前库有多少 key select 1 # 切换数据库(默认16个库,0-15) flushdb # 清空当前库(生产环境千万别乱用) ``` 这些命令不用全背下来,用到的时候查就行,重要的是你知道有这些命令,需要的时候能想起来去哪找 到这里,Redis 的基本操作你已经跑通了,下一讲来聊一个有意思的话题:Redis 为什么是单线程 ?