Redis 5种数据类型的常用命令

先了解Redis的大致作用和内容:https://github.com/JasonLai256/the-little-redis-book/blob/master/cn/redis.md

字符串 string、散列类型 hash、列表类型 list、集合类型 set、有序集合类型 zset

Redis的命令是不区分大小写的

常用命令:

key 含义
keys * 获取所有的key
EXISTS key 判断一个键是否存在
DEL key [key …] 删除键
TYPE key 获得键值的数据类型

字符串类型

命令

key 含义
SET key value 赋值
GET key 取值
INCR key 递增数字
INCRBY key increment 每次给key值增加increment
DECR key
DECRBY key decrement
递减键值
每次递减decrement
INCRBYFLOAT key increment 增加指定浮点数(双精度)
APPEND key value 向尾部追加值
STRLEN key 获取字符串长度
MGET key1 key2 .. 同时获得多个键值
MSET key1 value1 key2 value2 .. 同时设置多个键值

散列类型

HSET 不区分插入和更新操作,返回值为1表示插入操作,返回值为0表示更新操作

key 含义
HSET key field value
HGET key field
HMSET key field value [field value …]
HMGET key field [field …]
HGETALL key
赋值
取值
同时给多个字段赋值
同时取多个字段值
获得key的所有字段值
HEXISTS key field 判断字段是否存在
HSETNX key field value 如果field 存在就不执行添加操作
HINCRBY key field increment 增加数字 ,hash没有 HINCR 命令
HDEL key field [field …] 删除一个或多个字段
HKEYS key 只获取字段名
HVALS key 只获取字段值
HLEN key 获得字段数量

列表类型

key 含义
LPUSH key value [value …] 向列表左边增加元素
RPUSH key value [value …] 向列表右边增加元素
LPOP key
RPOP key
从列表两端移除并返回元素值
LLEN key 获取列表中元素的个数
LRANGE key start stop 获得列表从 start到 stop之间的所有元素
(包含两端的元素)
索引从0开始;支持负数,负数表示从右边开始
LREM key count value 删除列表中前count个值为value的元素:
当 count > 0时,列表从左边开始删除
当 count < 0时,列表从右边开始删除
当 count = 0时,列表删除所有值为 value的元素
LINDEX key index
LSET key index value
获得/设置指定索引的元素值
LTRIM key start end 删除指定索引范围之外的所有元素
(指定范围的方法与LRANGE 相同)
LINSERT key BEFORE|AFTER pivot value 向列表中插入元素
先从左到右查找值为 pivot 的元素
然后在元素的前面/后面插入value值
RPOPLPUSH source destination 将元素从一个列表source 转到另一个列表 destination

集合类型

key 含义
SADD key member [member ..] 添加元素(如某元素已存在就忽略)
SREM key member [member ..] 删除元素
SMEMBERS key 获得集合key中的所有元素
SISMEMBER key member 判断元素是否在集合中
SDIFF key [key1 key2 ..] 差集运算(属于key1且不属于key2的元素构成的集合)
SINTER key [key1 key2 ..] 交集运算(属于key1属于key2的元素构成的集合)
SUNION key [key1 key2 ..] 并集运算(属于key1属于key2的元素构成的集合)
SDIFFSTORE destination key [key …] 和SDIFF命令功能一样
但它不会直接返回运算结果, 而是存储在destination键中
SINTER和SUNION也有对应的命令
SCARD key 而是将结果存储在destination键中。获得集合中元素个数
SRANDMEMBER key [count] 随机获得集合中的元素

有序集合类型

有序集合类型算得上是Redis的5种数据类型中*的类型了。

在集合类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,这使得我们 不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高 (或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。虽然集合中每 个元素都是不同的,但是它们的分数却可以相同。

有序集合类型在某些方面和列表类型有些相似,但他们应用场景是不同的。

  1. 列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元 素的应用。
  2. 有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
  3. 列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
  4. 有序集合要比列表类型更耗费内存。
key 含义
ZADD key score member [score member …] 增加元素 ,score 是元素关联的分数
ZSCORE key member 获得元素的分数
ZRANGE key start stop [WITHSCORES] 获得排名在某个范围的元素列表(从大到小)
加 WITHSCORES 表示同时显示分数;
索引从0开始,-1 表示最后一个
ZREVRANGE key start stop [WITHSCORES] 和 ZRANGE 相似,但是从小到大排序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 获得指定分数范围的元素
ZCARD key 获得集合中元素的数量
ZCOUNT key min max 获得指定分数范围内的元素个数
ZREM key member [member …] 删除一个或多个元素
ZREMRANGEBYRANK key start stop 先从小到大排序,再删除 start 到 stop的元素
ZREMRANGEBYSCORE key min max 按照分数范围删除元素
ZRANK key member 获得元素的排名

计算有序集合的交集:

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATESUM|MIN|MAX]


Redis 5种数据类型的常用命令

上一篇:gitignore使用


下一篇:list中的数据用string接收