前言:
Redis 功能强大,支持丰富的数据类型,包括字符串(String)、哈希(Map)、列表(List)、集合(Sets)和有序集合(Sorted sets),以下是 Redis 常用的操作命令。
常用指令
1、Redis 键(Keys)相关常用命令
①、删除指定的一个或多个 key。
DEL key [key ...]
②、检查指定的一个或多个 key 是否存在。
EXISTS key [key ...]
③、为指定 key 设置生存时间,当 key 过期时,它会被自动删除。
EXPIRE key seconds
④、以秒为单位,返回指定 key 的剩余生存时间。
TTL key
⑤、返回指定 key 所储存的值的类型。
TYPE key
2、Redis 字符串(Strings)常用命令
字符串(Strings)类型是 Redis 最基本也是最简单的一种数据类型。Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,简称 C 字符串),而是构建了自己的字符串类型,名为简单动态字符串(simple dynamic string,SDS),并将其作为 Redis 默认的字符串表示。
①、将字符串值 value 关联到 key,同时可以选择是否增加生存时间,也可以设置键是否存在的条件操作。
SET key value [EX seconds|PX milliseconds] [NX|XX]
②、将 key 的值设为 value,当且仅当 key 不存在时,才成功。
SETNX key value
③、返回 key 所关联的字符串值。
GET key
3、Redis 哈希(Hashes)常用命令
Redis 的哈希(Hash)是一个 String 类型的 field 和 value 的映射表,Hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232-1 键值对(40 多亿)。Redis 的哈希底层结构和传统的哈希结构一样,由数组和链表组成。
①、将哈希表 key 中的域 field 的值设为 value。
HSET key field value
②、将哈希表 key 中的域 field 的值设置为 value,当且仅当域 field 不存在时。
HSETNX key field value
③、查看哈希表 key 中,指定域 field 是否存在。
HEXISTS key field
④、返回哈希表 key 中指定域 field 的值。
HGET key field
⑤、返回哈希表 key 中,所有的域和值。在返回值里,紧跟每个域名之后是域的值,所以返回值的长度是哈希表大小的两倍。
HGETALL key
⑥、返回哈希表 key 中的所有域。
HKEYS key
⑦、返回哈希表 key 中所有域的值。
HVALS key
⑧、返回哈希表 key 中域的数量。
HLEN key
⑨、删除哈希表 key 中的一个或多个指定域(field),不存在的域将被忽略。
HDEL key field [field ...]
⑩、同时将多个 field-value(域-值)对设置到哈希表 key 中。
HMSET key field value [field value ...]
⑪、返回哈希表 key 中,一个或多个指定域的值。
HMGET key field [field ...]
4、Redis 列表(Lists)常用命令
Redis 中,list 数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。
①、返回列表 key 中,下标为 index 的元素。
LINDEX key index
②、返回指定列表的长度。
LLEN key
③、表示移除并返回列表 key 的头元素。
LPOP key
④、表示将一个或多个值 value 插入到列表 key 的表头。
LPUSH key value [value ...]
⑤、返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
LRANGE key start stop
⑥、表示根据参数 count 的值,移除列表中与参数 value 相等的元素。
LREM key count value
⑦、将列表 key 下标为 index 的元素的值设置为 value。
LSET key index value
⑧、对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
LTRIM key start stop
⑨、表示移除并返回列表 key 的尾元素。
RPOP key
⑩、表示将一个或多个值 value 插入到列表 key 的表尾。
RPUSH key value [value ...]
5、Redis 集合(Sets)常用命令
Redis 中的 set 类型是一种无序集合,集合中的元素没有先后顺序,而且具有确定性、唯一性的特点。相比于前面介绍的 list 类型,set 支持更加丰富的操作,比如求交、并、差集等。
①、添加一个或多个指定的 member 元素到集合的 key 中。
SADD key member [member ...]
②、返回集合存储的 key 的基数(集合元素的数量)。
SCARD key
③、判断 member 元素是否是集合 key 的成员。
SISMEMBER key member
④、返回 key 集合所有的元素。
SMEMBERS key
⑤、从集合 key 中移除一个或多个 member 元素。
SREM key member [member ...]
6、Redis 有序集合(Sorted Set)常用命令
Redis 有序集合(Sorted Set)和集合(Set)一样也是 String 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数,redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
①、将一个或多个 member 元素及其 score 值加入到有序集合指定 key 当中。
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
②、返回有序集合指定 key 的基数(即成员的个数)。
ZCARD key
③、返回有序集合指定 key 中,score 值在 min 和 max 之间的成员的数量。
ZCOUNT key min max
④、返回有序集 key 中,成员 member 的 score 值。
ZSCORE key member
⑤、返回有序集合 key 中,指定区间内的成员。下标从0开始,-1表示最后一个成员,-2表示倒数第二个成员。
ZRANGE key start stop [WITHSCORES]
⑥、返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)顺序排列。
ZREVRANK key member
⑦、返回有序集合 key 中,所有 score 值介于 max 和 min 之间的成员。有序集合成员按 score 值递减(从大到小)次序排列。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
⑧、移除有序集 key 中,指定排名(rank)区间内的所有成员。
ZREMRANGEBYRANK key start stop
⑨、移除有序集 key 中,所有 score 值介于 min 和 max 之间的成员。有序集合成员按 score 值递增(从小到大)次序排列。
ZREMRANGEBYSCORE key min max
更多命令请参考:
评论区