redis的常用命令总结

常用的redis系统命令:

  • auth  

如果conf文件里设置了requirepass 的值,那么在连接redis服务器的时候,是需要输入密码的 AUTH password

  • select : 切换数据库

  • keys  : keys * 获取当前数据库的所有key;    keys h?llo 匹配hello hallo hbllo等;     keys h*llo 匹配hllo  heeeeeello等;   keys h[ae]llo 匹配hallo hello,但不匹配hillo等.

  • exist : 判断key是否存在,存在返回1,否则返回0

  • type key : 返回key所储存的值的类型

更多的类型:

  • rename key newkey : 将key改名为newkey,当key和newkey相同,或者key不存在时,返回一个错误;当newkey已经存在时,rename命令将覆盖这个旧值.

  • renamenx key newkey :  当且仅当newkey不存在时,将key改名为newkey,当key不存在时,返回一个错误.

  • dbsize : 返回当前数据库的 key 的数量。

  • flushdb  清空当前数据库,此命令从不失败。

  • flushall  清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。此命令从不失败。

  • swapdb db1 db2 : 对换指定的两个数据库, 使得两个数据库的数据立即互换。

  • expire key seconds :为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile)。生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时间的 key 的值而不是用一个新的 key 值来代替(replace)它的话,那么生存时间不会被改变。

  • pexpire key  milliseconds : 这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE命令那样,以秒为单位。

  • expire at key timestamp : 和 EXPIRE 类似,都用于为 key 设置生存时间。不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

  • pexpire at key milliseconds-timestamp : 这个命令和 expireat 命令类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像 expireat 那样,以秒为单位。

  • ttl key : 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

  • pttl key : 这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 TTL 命令那样,以秒为单位。

  • persist key : 移除给定 key 的生存时间,将这个 key 从“易失的”(带生存时间 key )转换成“持久的”(一个不带生存时间、永不过期的 key )。

  • save  : save命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。一般来说,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端,保存数据库的任务通常由 BGSAVE 命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。

  • bgsave : 

    BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功

  • bgrewriteaof : 从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。

  • lastsave : 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。

redis常用操作数据命令

string:

  • set key value : 

    将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值, 无视类型。当 SET 命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。

  • setnx key value : 只在键 key 不存在的情况下, 将键 key 的值设置为 value 。若键 key 已经存在, 则 SETNX 命令不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。

  • set key seconds value : 将键 key 的值设置为 value , 并将键 key 的生存时间设置为 seconds 秒钟。如果键 key 已经存在, 那么 SETEX 命令将覆盖已有的值。

  • psetnx key milliseconds  value : 这个命令和 SETEX 命令相似, 但它以毫秒为单位设置 key 的生存时间, 而不是像 SETEX 命令那样以秒为单位进行设置。

  • get key : 如果键 key 不存在, 那么返回特殊值 nil ; 否则, 返回键 key 的值。如果键 key 的值并非字符串类型, 那么返回一个错误, 因为 GET 命令只能用于字符串值。

  • getset key value : 将键 key 的值设为 value , 并返回键 key 在被设置之前的旧值。

  • strlen key : 返回字符串值的长度。当键 key 不存在时, 命令返回 0 。当 key 储存的不是字符串值时, 返回一个错误。

  • append key value : 如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾。

    如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。

  • setrange key offset value : 从offset开始,用value覆写key储存的字符串值。

  • getrange key start end : 返回键 key 储存的字符串值的指定部分, 字符串的截取范围由 start 和 end 两个偏移量决定 (包括 start 和 end 在内)。负数偏移量表示从字符串的末尾开始计数, -1 表示最后一个字符, -2 表示倒数第二个字符, 以此类推。

  • incr key : 为键 key 储存的数字值加上一。如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。本操作的值限制在 64 位(bit)有符号数字表示之内。

  • incrby key increment : 

    为键 key 储存的数字值加上增量 increment 。

    如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY 命令。

    如果键 key 储存的值不能被解释为数字, 那么 INCRBY 命令将返回一个错误。

    本操作的值限制在 64 位(bit)有符号数字表示之内。

  • incrbyfloat key increment : 为键 key 储存的值加上浮点数增量 increment 。

  • decr key : 为键 key 储存的数字值减去一。

  • decrby key decrement : 将键 key 储存的整数值减去减量 decrement 。

  • mset key value [key value …] : 同时为多个键设置值。

    如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值, 如果这不是你所希望的效果, 请考虑使用 MSETNX 命令, 这个命令只会在所有给定键都不存在的情况下进行设置。

    MSET 是一个原子性(atomic)操作, 所有给定键都会在同一时间内被设置, 不会出现某些键被设置了但是另一些键没有被设置的情况。

 

  • mset key value [key value …] : 当且仅当所有给定键都不存在时, 为所有给定键设置值。即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作。MSETNX 是一个原子性(atomic)操作, 所有给定键要么就全部都被设置, 要么就全部都不设置, 不可能出现第三种状态.

  • mget key [key …] : 返回给定的一个或多个字符串键的值。

    如果给定的字符串键里面, 有某个键不存在, 那么这个键的值将以特殊值 nil 表示。MGET 命令将返回一个列表, 列表中包含了所有给定键的值.

 

hsah:

  • hset hash filed value : 将哈希表 hash 中域 field 的值设置为 value 。

    如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET 操作。如果域 field 已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖。

  • hsetnx hash field value : 当且仅当域 field 尚未存在于哈希表的情况下, 将它的值设置为 value 。如果给定域已经存在于哈希表当中, 那么命令将放弃执行设置操作。如果哈希表 hash 不存在, 那么一个新的哈希表将被创建并执行 HSETNX 命令。

  • hget hash field : 命令在默认情况下返回给定域的值。如果给定域不存在于哈希表中, 又或者给定的哈希表并不存在, 那么命令返回 nil 。

  • hexixt hash filed : 定域存在时返回 1 , 在给定域不存在时返回 0 。

  • hdel  key field [field …] : 删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。

  • hlen key : 返回hash表key中域的数量

  • hstrlen key filed : 返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)。如果给定的键或者域不存在, 那么命令返回 0 。

  • HINCRBY key field increment : 为哈希表 key 中的域 field 的值加上增量 increment 。增量也可以为负数,相当于对给定域进行减法操作。如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。本操作的值被限制在 64 位(bit)有符号数字表示之内。

  • HINCRBYFLOAT key field increment : 为哈希表 key 中的域 field 加上浮点数增量 increment 。

  • HMSET key field value [field value …] : 同时将多个 field-value (域-值)对设置到哈希表 key 中。

  • HMGET key field [field …] : 返回哈希表 key 中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个 nil 值。因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。

  • HKEYS key : 返回哈希表 key 中的所有域。

  • HVALS key :返回哈希表 key 中所有域的值。

  • HGETALL key : 返回哈希表 key 中,所有的域和值。在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。

list:

  • lpush key value [value …] : 将一个或多个值 value 插入到列表 key 的表头

  • lpushnx key value : 将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。

  • rpush key value [value …] : 将一个或多个值 value 插入到列表 key 的表尾

  • rpushnx key value : 将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

  • lpop : 移除并返回列表 key 的头元素。

  • blpop key [key …] timeout: 是列表的阻塞式(blocking)弹出原语。它是 LPOP key 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP命令阻塞,直到等待超时或发现可弹出元素为止。

    当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。

  • rpop  : 移除并返回列表 key 的尾元素。

  • brpop key [key …] timeout : 是列表的阻塞式(blocking)弹出原语。它是 RPOP key 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BRPOP命令阻塞,直到等待超时或发现可弹出元素为止。

    当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素。

    关于阻塞操作的更多信息,请查看 BLPOP key [key …] timeout 命令, BRPOP 除了弹出元素的位置和 BLPOP key [key …] timeout 不同之外,其他表现一致。

  • rpoplpush source desctination : 

    在一个原子时间内,执行以下两个动作:将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

  • brpoplpush source desctination : 是 RPOPLPUSH source destination 的阻塞版本,当给定列表 source 不为空时, BRPOPLPUSH 的表现和 RPOPLPUSH source destination 一样。

    当列表 source 为空时, BRPOPLPUSH 命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行 LPUSH key value [value …] 或 RPUSH key value [value …] 命令为止。

    超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长(block indefinitely) 。

  • lrem key count value : 根据参数 count 的值,移除列表中与参数 value 相等的元素。

    count 的值可以是以下几种:

  count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。

  count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。

  count = 0 : 移除表中所有与 value 相等的值。

  • llen key : 返回列表 key 的长度。

  • lindex key index : 返回列表 key 中,下标为 index 的元素。

  • linsert key BEFORE|AFTER pivot value : 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。当 pivot 不存在于列表 key 时,不执行任何操作。当 key 不存在时, key 被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。

  • lset key index value : 将列表 key 下标为 index 的元素的值设置为 value 。

  • lrange key start stop : 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。下标(index)参数start和stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

set:

  • sadd key member [member …] : 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合。当 key 不是集合类型时,返回一个错误。

  • sismember key member : 判断 member 元素是否集合 key 的成员。

  • spop key : 移除并返回集合中的一个随机元素。

  • SRANDMEMBER key [count] : 如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。从 Redis 2.6 版本开始, SRANDMEMBER 命令接受可选的 count 参数:如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

  • srem key member [member …] : 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

  • smove source destination member : 将 member 元素从 source 集合移动到 destination 集合。(原子性操作)

  • scard key : 返回集合 key 的基数(集合中元素的数量)。

  • smembers key : 返回集合 key 中的所有成员。

  • sinter key [key …] : 返回一个集合的全部成员,该集合是所有给定集合的交集。

  • sinterstore destination key [key …] : 这个命令类似于 SINTER key [key …] 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

  • sunion key [key …] : 返回一个集合的全部成员,该集合是所有给定集合的并集。

  • sunionstore destination key [key …] : 这个命令类似于 SUNION key [key …] 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。

  • sdiff key [key …] : 返回一个集合的全部成员,该集合是所有给定集合之间的差集。

  • sdiffstore destination key [key …] : 这个命令的作用和 SDIFF key [key …] 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。

zset:

  • zadd key score member [[score member] [score member] …] : 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。score 值可以是整数值或双精度浮点数。如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。

  • zscore key member : 返回有序集 key 中,成员 member 的 score 值。如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
  • ZINCRBY key increment member : 为有序集 key 的成员 member 的 score 值加上增量 increment 。
  • zcard key : 当 key 存在且是有序集类型时,返回有序集的基数。 当 key 不存在时,返回 0 。
  • zcount key min max : 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。
  • zrem key member [member …] : 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。

猜你喜欢

转载自blog.csdn.net/weixin_40910372/article/details/89551035