
SET:设置指定键的字符串值。
SET key valueGET:获取指定键的字符串值。
GET keyDEL:删除指定键及其关联的字符串值。
DEL key [key ...]INCR:将指定键的值递增 1。
INCR keyDECR:将指定键的值递减 1。
DECR keyINCRBY:将指定键的值增加指定的整数[浮点数]增量。
INCRBY[FLOAT] key incrementDECRBY:将指定键的值减去指定的整数减量。
DECRBY key decrementAPPEND:将指定值追加到指定键的字符串值的末尾。
APPEND key valueSTRLEN:获取指定键的字符串值的长度。
STRLEN keySETEX:设置指定键的字符串值,并指定过期时间(以秒为单位)。
SETEX key seconds valueGETSET:设置指定键的字符串值,并获取之前的值。
GETSET key valueSETBIT:设置指定位置的位值(0 或 1)。
SETBIT key offset valueGETBIT:获取指定位置的位值。
GETBIT key offsetBITCOUNT:计算指定键的字符串值中置为 1 的位的数量。
BITCOUNT key [start end]BITOP:对多个键进行位运算,并将结果存储到指定的键中。
BITOP operation destkey key [key ...]
- operation 可以是 AND(按位与)、OR(按位或)、XOR(按位异或)或 NOT(按位取反)。
- destkey 是存储结果的键。
- key 是参与位运算的键。BITFIELD:通过位域操作对指定键的字符串值进行复杂的位级操作。
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
- GET:获取指定类型和偏移量的位域值。
- SET:设置指定类型和偏移量的位域值。
- INCRBY:将指定类型和偏移量的位域值增加指定的增量。
- OVERFLOW:指定位域操作的溢出策略。要使用字符串类型存储一个对象,那么需要将对象序列化成一个字符串来表达,但是这样无法提供对单个字段的操作,每次都需要将对象完整取出,这样十分消耗资源,同时字符串无法提供对单个字段的原子操作,容易产生条件竞争,因此可以使用散列类型存储。 Redis 的散列类型与关系型数据库的表的字段不同,对每一个对象可以单独设置其字段。
HSET:设置散列中指定字段的值。
HSET key field valueHGET:获取散列中指定字段的值。
HGET key fieldHDEL:删除散列中一个或多个字段。
HDEL key field [field ...]HEXISTS:检查散列中是否存在指定字段。
HEXISTS key fieldHSETNX:字段不存在时赋值,如果不存在返回 1,否则返回 0
HSETNX key field valueHLEN:获取散列中字段的数量。
HLEN keyHKEYS:获取散列中所有字段的列表。
HKEYS keyHVALS:获取散列中所有值的列表。
HVALS keyHGETALL:获取散列中所有字段和值的列表。
HGETALL keyHMSET:同时设置散列中多个字段的值。
HMSET key field1 value1 [field2 value2 ...]HMGET:获取散列中多个字段的值。
HMGET key field1 [field2 ...]HINCRBY 增加数字
HINCRBY key field incrementRedis 提供了一组用于操作列表(list)数据类型的命令。列表是一个有序的元素集合,可以在列表的两端进行插入、删除和访问操作。
以下是一些常用的 Redis 列表类型的命令:
LPUSH:将一个或多个值插入到列表的左侧(头部)。
LPUSH key value [value ...]RPUSH:将一个或多个值插入到列表的右侧(尾部)。
RPUSH key value [value ...]LPOP:移除并获取列表的左侧(头部)元素。
LPOP keyRPOP:移除并获取列表的右侧(尾部)元素。
RPOP keyLINDEX:获取列表中指定索引位置的元素值。
LINDEX key indexLLEN:获取列表的长度(元素个数)。
LLEN keyLRANGE:获取列表中指定范围的元素(包含 stop)。支持负索引,-1 表示倒数第一个元素,-2 表示倒数第二个。
LRANGE key start stopLTRIM 用于修剪(Trim)列表的命令。它用于保留列表中指定范围内的元素,而将其它元素删除。
LTRIM key start stopLREM:从列表中删除指定数量的匹配元素。count 为负数则取绝对值,为 0 则删除所有。
LREM key count valueLINSERT:在列表中指定元素的前面或后面插入一个新元素。
LINSERT key BEFORE|AFTER pivot valueLSET:设置列表中指定索引位置的元素值。
LSET key indexvalueRPOPLPUSH 从一个列表的右侧(尾部)弹出一个元素,并将该元素推入到另一个列表的左侧(头部)。
RPOPLPUSH source destinationRedis 提供了一种称为集合(Set)的数据类型,它是一个无序、唯一的元素集合,底层数据结构使用的是哈希表(Hash Table)。Redis 的集合提供了高效的成员检查和集合操作,例如并集、交集和差集等。
以下是一些常用的 Redis 集合类型的命令:
SADD:将一个或多个成员添加到集合中。
SADD key member [member ...]SREM:从集合中移除一个或多个成员。
SREM key member [member ...]SMEMBERS:获取集合中的所有成员。
SMEMBERS keySISMEMBER:检查成员是否存在于集合中。
SISMEMBER key memberSCARD:获取集合中的成员数量。
SCARD keySUNION:计算多个集合的并集。计算顺序,比如 SUNION A B C 是先计算 A 和 B 的并集,再计算结果和 C 的并集。
SUNION key [key ...]SINTER:计算多个集合的交集。
SINTER key [key ...]SDIFF:计算多个集合的差集。
SDIFF key [key ...]还可以将集合运算的结果存储
SUNIONSTORE destination key [key ...]
SINTERSTORE destination key [key ...]
SDIFFSTORE destination key1 key2SRANDMEMBER:随机获取集合中的一个或多个成员。
SRANDMEMBER key [count]SPOP 用于随机移除并返回集合中一个或多个随机成员。
SPOP key [count]在 Redis 中,有序集合(Sorted Set)的底层数据结构是使用跳跃表(Skip List)和哈希表(Hash Table)的结合。
跳跃表是一种有序数据结构,类似于链表的结构,但通过添加多级索引(层级)来加快查找速度。每个节点都包含一个成员和对应的分数值,并通过指针连接到下一个节点和下一层的节点。通过跳跃表的层级结构,可以在平均时间复杂度为 O(logN)的情况下进行快速的范围查询、插入和删除操作。
然而,跳跃表并不适合高效地执行诸如按照成员进行查找的操作,因此在 Redis 中,为了提供更高效的成员查找功能,有序集合还使用了一个辅助的数据结构——哈希表。
有序集合常用于需要根据某个值进行排序和检索的场景。
ZADD:向有序集合中添加一个或多个成员,每个成员都有一个分数值。
ZADD key score1 member1 [score2 member2 ...]ZREM:从有序集合中移除一个或多个成员。
ZREM key member1 [member2 ...]ZSCORE:获取有序集合中指定成员的分数。
ZSCORE key memberZRANK:获取有序集合中指定成员的排名(按照分数从低到高排序)。
ZRANK key memberZREVRANK:获取有序集合中指定成员的排名(按照分数从高到低排序)。
ZREVRANK key memberZRANGE:按照排名范围获取有序集合中的成员(按照分数从低到高排序)。
ZRANGE key start stop [WITHSCORES]ZREVRANGE:按照排名范围获取有序集合中的成员(按照分数从高到低排序)。
ZREVRANGE key start stop [WITHSCORES]ZRANGEBYSCORE:按照分数范围获取有序集合中的成员。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]ZREMRANGEBYRANK:根据成员的排名范围来移除有序集合中的成员。
ZREMRANGEBYRANK key start stopZREMRANGEBYSCORE:用于根据成员的分数范围来移除有序集合中的成员。
ZREMRANGEBYSCORE key min maxZCOUNT:计算有序集合中指定分数范围内的成员数量。
ZCOUNT key min maxZINCRBY:增加有序集合中指定成员的分数。
ZINCRBY key increment memberZARD:获取集合中元素数量。
ZCARD keyZINTERSTORE:计算一个或多个有序集合的交集,并将结果存储到一个新的有序集合中。
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]ZUNIONSTORE:计算一个或多个有序集合的并集,并将结果存储到一个新的有序集合中。
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]ZDIFFSTORE:计算一个有序集合与一个或多个有序集合的差集,并将结果存储到一个新的有序集合中。
ZDIFFSTORE destination numkeys key [key ...]这几个集合运算命令的参数解释:
destination:结果有序集合的键名。numkeys:参与运算的有序集合数量。key:参与运算的有序集合的键名。WEIGHTS weight [weight ...](可选):指定每个有序集合的权重,用于进行加权运算。AGGREGATE SUM|MIN|MAX(可选):指定集合运算的聚合方式。