🐳Redis常见命令
在Redis中,有多种数据结构和命令可供使用。本文将介绍Redis常见的数据结构以及各种命令的使用。
Redis数据结构介绍
💧Redis是一个高性能的键值存储系统,支持多种数据结构。以下是Redis中常用的数据结构:
- String(字符串):存储字符串类型的值。
- Hash(哈希表):存储键值对的无序散列表。
- List(列表):存储一个有序的字符串元素列表。
- Set(集合):存储字符串元素的无序集合。
- ZSet(有序集合):存储字符串元素和对应的分值,按分值排序。
💧接下来,让我们一一介绍这些数据结构及其常见命令 ↓
通用命令
💧在使用Redis时,有一些通用命令适用于所有数据结构。以下是一些常用的通用命令示例:
命令 | 描述 |
KEYS |
查看符合模板的所有key,不建议在生产环境设备上使用。 |
DEL key |
删除指定的键。 |
EXISTS key |
检查键是否存在。 |
EXPIRE key |
给一个key设置有效期,有效期到期时该key会被自动删除。 |
TTL key |
获取键的剩余过期时间(以秒为单位)。 |
可以通过help [command]
可以查看一个命令的具体用法!
String类型命令
💧String类型是Redis中最基本的数据结构,用于存储字符串值。以下是一些常用的String类型命令示例:
命令 | 描述 |
SET key value [EX seconds] [PX milliseconds] [NX] |
设置键的值。可选参数包括过期时间(以秒或毫秒为单位)和条件选项(NX表示仅在键不存在时设置)。 |
GET key |
获取键的值。 |
MSET key1 value1 [key2 value2 ...] |
同时设置多个键值对。 |
MGET key1 [key2 ...] |
获取多个键的值。 |
INCR key |
将键的值增加1。 |
INCRBY key |
让一个整型的key自增并指定步长,例如:incrby num 2 让num值自增2。 |
INCRBYFLOAT key |
让一个浮点类型的数字自增并指定步长。 |
DECR key |
将键的值减少1。 |
SETEX key seconds value |
设置键的值,并指定过期时间(以秒为单位)。 |
💧对SET
命令参数的具体解释如下:
key
: 键名。value
: 键对应的值。EX seconds
(可选): 设置键的过期时间(以秒为单位)。键将在指定的秒数后自动过期并被删除。PX milliseconds
(可选): 设置键的过期时间(以毫秒为单位)。键将在指定的毫秒数后自动过期并被删除。NX
(可选): 仅在键不存在时设置。如果键已经存在,则不进行设置操作。
💧例如,以下命令将在键mykey
中设置值为myvalue
,并同时设置过期时间为10秒:
SET mykey myvalue EX 10
Hash类型命令
💧Hash类型用于存储键值对的无序散列表,类似于Java中的HashMap结构。Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD。
命令 | 描述 |
HSET key field value |
设置哈希表中字段的值。 |
HGET key field |
获取哈希表中字段的值。 |
HGETALL key |
获取哈希表中所有字段和对应的值。 |
HDEL key field1 field2 |
删除哈希表中的一个或多个字段。 |
HKEYS key |
获取哈希表中所有字段名。 |
HVALS key |
获取哈希表中所有字段值。 |
HSETNX key field value |
仅在字段不存在时,设置哈希表中字段的值。 |
List类型命令
💧Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
特征也与LinkedList类似:
- 有序
- 元素可以重复
- 插入和删除快
- 查询速度一般
💧常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等.
命令 | 描述 |
LPUSH key value1 value2 |
将一个或多个值插入列表的左侧。 |
RPUSH key value1 value2 |
将一个或多个值插入列表的右侧。 |
LRANGE key start stop |
获取列表中指定范围内的元素。 |
LPOP key |
移除并返回列表左侧的第一个元素。 |
RPOP key |
移除并返回列表右侧的第一个元素。 |
Set类型命令
💧Set类型是Redis中的无序字符串元素集合,不允许重复的元素。
Set具备下列特性:
- 无序
- 元素不可重复
- 查找快
- 支持交集、并集、差集等功能
命令 | 描述 |
SADD key member1 member2 |
向集合中添加一个或多个成员。 |
SMEMBERS key |
获取集合中的所有成员。 |
SISMEMBER key member |
检查成员是否存在于集合中。 |
SREM key member1 member2 |
从集合中移除一个或多个成员。 |
SCARD key |
获取集合中的成员数量。 |
SINTER key1 key2 … |
求key1与key2的交集。 |
SDIFF key1 key2 … |
求key1与key2的差集。 |
SUNION key1 key2 … |
求key1和key2的并集。 |
ZSet类型命令
💧ZSet类型(有序集合)是Redis中的有序字符串元素集合,每个元素关联一个分值,根据分值排序。
ZSet具备下列特性:
- 可排序
- 元素不重复
- 查询速度快
命令 | 描述 |
ZADD key score1 member1 score2 member2 |
向有序集合中添加一个或多个成员。 |
ZRANGE key start stop [WITHSCORES] |
获取有序集合中指定范围内的成员。 |
ZSCORE key member |
获取有序集合中成员的分值。 |
ZREM key member1 member2 |
从有序集合中移除一个或多个成员。 |
ZRANK key member |
获取有序集合中指定元素的排名。 |
ZCARD key |
获取有序集合中的成员数量。 |
ZCOUNT key min max |
统计score值在给定范围内的所有元素的个数。 |
ZINCRBY key increment member |
让集合中的指定元素自增,步长为指定的increment值。 |
ZRANGE key min max |
按照score排序后,获取指定排名范围内的元素。 |
ZRANGEBYSCORE key min max |
按照score排序后,获取指定score范围内的元素。 |
ZDIFF、ZINTER、ZUNION |
求差集、交集、并集。 |