1 键(key)命令
Redis 是 key-value 型数据库,使用 key 对 value 进行存储,因此,键(Key)命令是 Redis 中经常使用的一类命令。常用的键命令如下所示:
命令 | 说明 |
---|---|
DEL | 若键存在的情况下,该命令用于删除键 |
DUMP | 用于序列化给定 key ,并返回被序列化的值 |
EXISTS | 用于检查键是否存在,若存在则返回 1,否则返回 0 |
EXPIRE | 设置 key 的过期时间,以秒为单位 |
EXPIREAT | 该命令与 EXPIRE 相似,用于为 key 设置过期时间,不同在于,它的时间参数值采用的是时间戳格式。 |
KEYS | 此命令用于查找与指定 pattern 匹配的 key |
MOVE | 将当前数据库中的 key 移动至指定的数据库中(默认存储为 0 库,可选 1-15中的任意库) |
PERSIST | 该命令用于删除 key 的过期时间,然后 key 将一直存在,不会过期 |
PEXPIRE | 设置 key 的过期,以毫秒为单位 |
RANDOMKEY | 从当前数据库中随机返回一个 key |
RENAME | 修改 key 的名称 |
SCAN | 基于游标的迭代器,用于迭代数据库中存在的所有键,cursor 指的是迭代游标 |
TTL | 用于检查 key 还剩多长时间过期,以秒为单位 |
TYPE | 该命令用于获取 value 的数据类型。 |
2 Hash 命令
Hash(哈希散列)是 Redis 基本数据类型之一,它以字符串映射表的形式来进行存储。Hash 特别适合用于存储对象。常用的命令如下所示:
命令 | 说明 |
---|---|
HDEL | 用于删除一个或多个哈希表字段 |
HEXISTS | 用于确定哈希字段是否存在 |
HGET | 获取存储在 key 中的哈希字段的值 |
HGETALL | 获取存储在 key 中的所有哈希字段值 |
HINCRBY | 为存储在 key 中的哈希表指定字段做整数增量运算 |
HKEYS | 获取存储在 key 中的哈希表的所有字段 |
HLEN | 获取存储在 key 中的哈希表的字段数量 |
HSET | 用于设置存储在 key 中的哈希表字段的值 |
HVALS | 用于获取哈希表中的所有值 |
3 String命令
Strings(字符串)结构是 Redis 的基本数据类型之一,我们可以通过相关字符串命令对其进行操作,比如设置、检索、删除等等。
字符串类型有诸多的应用场景,比如微博粉丝的关注与取消等。下面介绍了 Redis 中常营的字符串命令:
命令 | 说明 |
---|---|
APPEND | 该命令将 value 追加到 key 所存储值的末尾 |
BITCOUNT | 该命令用于计算字符串中,被设置为 1 的比特位的数量。 |
DECR | 将 key 所存储的整数值减 1 |
DECRBY | 将 key 所储存的值减去给定的递减值(decrement) |
GET | 用于检索指定键的值 |
GETBIT | 对 key 所存储的字符串值,获取其指定偏移量上的位(bit) |
GETRANGE | 返回 key 中字符串值的子字符 |
GETSET | 将给定 key 的值设置为 value,并返回 key 的旧值 |
INCR | 将 key 所存储的整数值加 1 |
INCRBY | 将 key 所储存的值加上给定的递增值(increment) |
INCRBYFLOAT | 将 key 所储存的值加上指定的浮点递增值(increment) |
MGET | 一次性获取一个或多个 key 所存储的值 |
MSET | 该命令允许同时设置多个键值对 |
MSETNX | 当指定的 key 都不存在时,用于设置多个键值对 |
SET | 用于设定指定键的值 |
SETBIT | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit) |
SETEX | 将值 value 存储到 key中 ,并将 key 的过期时间设为 seconds (以秒为单位) |
STRLEN | 返回 key 所储存的字符串值的长度 |
SETNX | 当 key 不存在时设置 key 的值 |
SETRANGE | 从偏移量 offset 开始,使用指定的 value 覆盖的 key 所存储的部分字符串值 |
4 List命令
List 是 Redis 中最常用数据类型之一。Redis 提供了诸多用于操作列表类型的命令,通过这些命令你可以实现将一个元素添加到列表的头部,或者尾部等诸多操作。
List 常用的命令如下所示:
命令 | 说明 |
---|---|
BLPOP | 用于删除并返回列表中的第一个元素(头部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止 |
BRPOP | 用于删除并返回列表中的最后一个元素(尾部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止 |
BRPOPLPUSH | 从列表中取出最后一个元素,并插入到另一个列表的头部。如果列表中没有元素,就会发生阻塞,直到等待超时或发现可弹出元素时为止 |
LINDEX | 通过索引获取列表中的元素 |
LINSERT | 指定列表中一个元素在它之前或之后插入另外一个元素 |
LLEN | 用于获取列表的长度 |
LPOP | 从列表的头部弹出元素,默认为第一个元素 |
LPUSH | 在列表头部插入一个或者多个值 |
LPUSHX | 当储存列表的 key 存在时,用于将值插入到列表头部 |
LRANGE | 获取列表指定范围内的元素 |
LREM | 表示从列表中删除元素与 value 相等的元素。count 表示删除的数量,为 0 表示全部移除 |
LSET | 表示通过其索引设置列表中元素的值 |
LTRIM | 保留列表中指定范围内的元素值 |
5 Set命令
Redis set 数据类型由键值对组成,这些键值对具有无序、唯一的性质,这与 Python 的 set 相似。当集合中最后一个元素被移除之后,该数据结构也会被自动删除,内存也同样会被收回。
Redis 的 Set 是 string 类型的无序集合。
集合成员是唯一的,这就意味着集合中没有重复的数据。
在 Redis 中,添加、删除和查找的时间复杂都是 O(1)(不管 Set 中包含多少元素)。
集合中最大的成员数为
$$
2^{32} – 1
$$
(4294967295), 每个集合可存储 40 多亿个成员。
由于 set 集合可以实现去重,因此它有很多适用场景,比如用户抽奖活动,使用 set 集合可以保证同一用户不被第二次选中。
Redis set 常用的命令如下所示:
命令 | 说明 |
---|---|
SADD | 向集合中添加一个或者多个元素,并且自动去重 |
SCARD | 返回集合中元素的个数 |
SDIFF | 求两个或对多个集合的差集 |
SDIFFSTORE | 求两个集合或多个集合的差集,并将结果保存到指定的集合(key)中 |
SINTER | 求两个或多个集合的交集 |
SINTERSTORE | 求两个或多个集合的交集,并将结果保存到指定的集合(key)中 |
SMEMBERS | 查看集合中所有元素 |
SMOVE | 将集合中的元素移动到指定的集合中 |
SPOP | 弹出指定数量的元素 |
SRANDMEMBER | 随机从集合中返回指定数量的元素,默认返回 1个 |
SREM | 删除一个或者多个元素,若元素不存在则自动忽略 |
SUNION | 求两个或者多个集合的并集 |
SUNIONSTORE | 求两个或者多个集合的并集,并将结果保存到指定的集合(key)中 |
Reference
- http://c.biancheng.net/redis_command/
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
- How to connect remote redis server
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment