Redis 通用指令
下面是一些 Redis 的通用命令,你可以根据下表进行简单的复习:
-
键操作命令:
- SET:设置指定键的值。
- GET:获取指定键的值。
- DEL:删除指定键。
- EXISTS:检查指定键是否存在。
- KEYS:获取匹配指定模式的键列表。
-
字符串操作命令:
- APPEND:将指定值追加到键的末尾。
- STRLEN:获取指定键值的长度。
- INCR:将指定键的值增加 1。
- DECR:将指定键的值减少 1。
-
列表操作命令:
- LPUSH:将一个或多个值插入列表的左侧。
- RPUSH:将一个或多个值插入列表的右侧。
- LPOP:移除并返回列表的左侧第一个元素。
- RPOP:移除并返回列表的右侧第一个元素。
- LLEN:获取列表的长度。
-
哈希操作命令:
- HSET:在哈希中设置字段和值。
- HGET:获取哈希中指定字段的值。
- HGETALL:获取哈希中所有字段和值。
- HDEL:从哈希中删除指定字段。
- HKEYS:获取哈希中的所有字段。
-
集合操作命令:
- SADD:向集合中添加一个或多个成员。
- SMEMBERS:获取集合中的所有成员。
- SREM:从集合中删除一个或多个成员。
- SINTER:返回多个集合的交集。
- SUNION:返回多个集合的并集。
-
有序集合操作命令:
- ZADD:向有序集合中添加一个或多个成员,并指定分数。
- ZRANGE:按照分数顺序获取有序集合中的成员。
- ZREM:从有序集合中删除一个或多个成员。
- ZSCORE:获取有序集合中指定成员的分数。
- ZCOUNT:计算有序集合中指定分数范围内的成员数量。
基本字符串操作
所有的 redis 指令都对大小写不敏感,直接全大写写起来比较好区分
设置单个值(安装键值对) SET <key> <value>
查询给定 key GET <key>
获取旧值并设定新值 GETSET <key> <value>
一次性设置多个值 MSET <key1> <value1> <key2> <value2> ...
一次性获取多个值 MGET <key1> <key2> ...
获取字符串字节长度 STRLEN sentence
获取字符串指定索引文本(以下代码表示获取索引 0-4 的文本)
GETRANGE msg 0 4
整形自增 1 INCR <K>
数值加法 INCRBY <K> <V>
数值减法 DECRBY <K> <V>
如果省略 value 不写,则表示+1 或者-1
Key 层级结构
Redis 的 key 运行多个单词外加冒号来命名,命名格式基本如下
项目名:业务名:类型:ID
比如:zhiller:user:1
Hash
创建 hash 的格式:HSET <KEY> <FIELD> <VALUE>
(三个值分别表示键、字段名、值)
新建 key: hello,并向其中填入两个键值对
HSET hello a 10
HSET hello b 10
仅在字段不存在的情况下为其赋值 HSETNX
获取指定数据库的指定值 HGET <K> <F>
获取所有 fields HKEYS
获取所有 values HVALS
获取以上二者 HGETALL
让指定字段的值自增 HINCRBY <K> <F> [自增值]
List
在 Redis 中,List(列表)是一种有序、可重复的数据结构。它可以存储一个有序的字符串元素列表,允许在列表的两端进行插入和删除操作。
以下是一些常用的 Redis List 命令:
- LPUSH:将一个或多个元素插入到列表的左侧(头部)。
- RPUSH:将一个或多个元素插入到列表的右侧(尾部)。
- LPOP:移除并返回列表的左侧(头部)第一个元素。
- RPOP:移除并返回列表的右侧(尾部)第一个元素。
- LLEN:获取列表的长度。
- LRANGE:获取列表中指定范围内的元素。
- LINDEX:获取列表中指定索引位置的元素。
- LSET:设置列表中指定索引位置的元素值。
- LREM:从列表中删除指定数量的指定元素。
- LINSERT:在列表中指定元素的前面或后面插入一个新元素。
- LTRIM:修剪(裁剪)列表,只保留指定范围内的元素。
- RPOPLPUSH:将列表的最后一个元素移除,并添加到另一个列表的头部。
Redis 的 List 结构是基于链表实现,在头部和尾部进行插入和删除操作的时间复杂度是 O(1),在列表中间进行插入和删除操作的时间复杂度是 O(N)的(N 为列表长度)。
SET
类似于 HashSet,无序、元素不可重复、查找快、支持交集差集并集
以下是 SET 集合指令及其简要介绍:
- SADD:添加一个或多个成员到集合中。
- SREM:从集合中移除一个或多个成员。
- SMEMBERS:获取集合中的所有成员。
- SISMEMBER:检查一个成员是否存在于集合中。
- SCARD:获取集合的成员数量。
- SPOP:随机移除并返回集合中的一个成员。
- SRANDMEMBER:随机获取集合中的一个或多个成员。
- SINTER:获取多个集合的交集。
- SUNION:获取多个集合的并集。
- SDIFF:获取多个集合的差集。
SortedSet
可排序、元素不重复、查询速度快
底层基于一个跳表+hash 表实现;
其中的每一个元素都要 score 属性,可以基于 score 属性进行排序;
SortedSet 常用指令介绍
- ZADD:向有序集合中添加一个或多个成员,每个成员关联着一个分数。
- ZREM:从有序集合中移除一个或多个成员。
- ZRANGE:按照分数从小到大的顺序,返回指定索引范围内的成员。
- ZREVRANGE:按照分数从大到小的顺序,返回指定索引范围内的成员。
- ZRANK:获取指定成员在有序集合中的排名(按照分数从小到大的顺序)。
- ZREVRANK:获取指定成员在有序集合中的排名(按照分数从大到小的顺序)。
- ZSCORE:获取指定成员在有序集合中的分数。
- ZCARD:获取有序集合的成员数量。
- ZCOUNT:计算有序集合中指定分数范围内的成员数量。
- ZINCRBY:将指定成员的分数增加指定的增量。
- ZINTER ZUNION ZDIFF:求交、并、差集