redis命令
基本命令
- 心跳命令 ping
- 读写键值命令 set get
- DB切换,select(数据库切换)
- 查看数据库中的key数量 dbsize
- 删除当前库中的数据 flushdb
- 删除所有库中的数据 flushall
- 退出客户端命令 exit、quit
- 查找所有符合pattern的key keys [pattern](正则表达式),一般不用,大数据库中会阻塞服务。
key命令
- 查看key是否存在 exists key(存在返回1,否则返回0)
- 删除key ,del key....
- 改名 rename
- 将key移动到指定db中 move key db
- 返回key的类型 type key
- 给key设置生存时间 expire/pexpire key seconds(expire的时间单位是秒,pexpire的时间单位为毫秒)。
- 查看key的剩余生存时间 ttl/pttl key(ttl的时间单位是秒,pttl的时间单位是毫秒)
- 去除给定key的生存时间,将key从volatile(易失的)转为持久的 presist key
- 随机返回一个key randomkey
- scan cursor [match xxxx] [count xxxx] [type xxxx] 迭代数据库中的键。(cursor:迭代开始的下标;pattern:匹配模式;count:要从数据集中返回多少元素;type:要返回的value的类型)
- hscan,对value为hash类型进行操作
- sscan, 对value为set类型进行操作
- zscan, 对value为zset类型进行操作。
String类型的value命令
- 写入值 set key value [ex seconds | px millseconds] [nx|xx] (ex设置生存时间,单位为秒;px单位为毫秒;nx:添加key,只有key不存在才能设置成功;xx:只有存在才能设置成功,更新key)注意:如果value字符串中有空格,需要用双引号或单引号引起来,否则报错。
- setex/psetex key seconds value 既赋值又设置生存时间。(setex单位为秒,pestex为毫秒)
- setnx key value 将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。成功,返回 1,否则,返回 0。等价于 set key value nx
- getset key value 将给定 key 的值设为 value ,并返回 key 的旧值。
- mset/msetnx key value ......设置多对key-value(如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不 是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情 况下进行设置操作。)
- mget key.... (同时获取多个key)
- append key value (如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原 来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像 执行 SET key value 一样。)
- incr/decr key 自增、自减
- incrby/decrby key n 将 key 中存储的数字值增加/减少指定的数值,这个数值只能是整数,可以是负数
- incrbyfloat key n 为 key 中所储存的值加上浮点数增量
- strlen key 字符串长度
- getrange key start end 返回范围内的字串
- setrange key offset value 替换 从偏移量 offset 开始替换给定 key 所储存的字符串值 str
Hash类型Value命令
- hset key field value..... 将哈希表 key 中的域 field 的值设为 value 。
- hget ket field 返回哈希表 key 中给定域 field 的值。
- hmset key field value [field value ...] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
- hmget key field [field ...] 按照给出顺序返回哈希表 key 中一个或多个域的值。
- hgetall key 返回哈希表 key 中所有的域和值。
- hsetnx key field value 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。
- hdel key field...... 删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
- hexits key field 查看哈希表 key 中给定域 field 是否存在。
- hincrby/hincrbyfloat key field xxxx 为哈希表 key 中的域 field 的值加上增量 xxxx。hincrby 命令只能增加整 数值,而 hincrbyfloat 可以增加小数值。
- hkeys/hvals key 返回哈希表 key 中的所有域/值。
- hlen key 返回key中域的数量
- hstrlen key field :返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)返回字串。
List型Value命令
- lpush/rpush key [value......] 将一个或多个值 value 插入到列表 key 的表头/表尾(表头在左表尾在右)
- llen key 返回列表 key 的长度
- lindex key index 返回列表 key 中,下标为 index 的元素。
- lset key index value 将列表 key 下标为 index 的元素的值设置为 value 。
- lrange key start stop 返回列表 key 中指定区间[start, stop]内的元素
- lpushx/rpushx key value 将值 value 插入到列表 key 的表头/表尾,当且仅当 key 存在并且是一个列表。
- linsert key before/after pivot value 在元素 pivot 前或后,插入value
- lpop/rpop key [count] 从列表 key 的表头/表尾移除 count 个元素,并返回移除的元素。count 默认值 1
- blpop/brpop [key....] timeout 当给定列表内没有任何元素可供弹出的时候,连接将被 blpop/brpop 命令阻 塞,直到等待 timeout 超时或发现可弹出元素为止。当timeout=0时,永远阻塞
- rpoplpush key destination 将列表key的尾元素弹出,并将该元素插入到列表 destination ,作为 destination 列表的的头元素
- brpoplpush key destination timeout 当给定列表 key不为空时, brpoplpush 的表现和 rpoplpush 一样。当列表 source 为空时, brpoplpush 命令 将阻塞连接,直到等待超时,或有另一个客户端对 key执行 lpush或 rpush 命令 为止。timeout=0只要没有数据将永远阻塞。
- lrem key count value 根据参数 count 的值,移除列表中与参数 value 相等的元素。count 的值可以 是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。 count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的 绝对值。 count = 0 : 移除表中所有与 value 相等的值。
- ltrim key start stop 列表key只保留指定区间内的元素.
Set类型Value操作命令
- sadd key member.... 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
-
smembers key 返回集合 key 中的所有成员。一般不用
-
scard key 返回 Set 集合的长度
-
sismember key memeber 判断 member 元素是否集合 key 的成员。
- smove source destination member 将 member 元素从 source 集合移动到 destination 集合。(如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执
行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到destination 集合中去,返回 1 。当 destination 集合已经包含 member 元素时,SMOVE 命令只是简单地将 source 集合中的 member 元素删除。当 source 或 destination 不是集合类型时,返回一个错误)
- srem key member [member ...] 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略,且返回成功移除的元素个数
-
srandmember key [count] 返回集合中的 count 个随机元素。 count 默认值为 1 。
-
spop key [count] 移除并返回集合中的 count 个随机元素。 count 必须为正数,且默认值为 1
- sdiff key [key ...] /sdiffstore destination key [key ...] 返回第一个集合与其它集合之间的差集。sdiffstore 不仅能够显示差集,还能将差集存储到指定的集合 destination 中。如果destination 集合已经存在,则将其覆盖。不存在的 key 被视为空集。
- sinter key [key ...]/ sinterstore destination key [key ...] 返回多个集合间的交集。sinterstore 不仅能够显示交集,还能将交集存储到指定的集合 destination 中。如果 destination 集合已经存在,则将其覆盖。不存在的 key被视为空集。
-
sunion / sunionstore 求并集,其他与前面两个相同。
有序Set类型Value操作命令
- zadd key score member.... :将一个或多个 member 元素及其 score 值加入到有序集 key 中的适当位置。
- zrange/zrevrange key start stop [WITHSCORES] 返回有序集 key 中,指定区间内的成员。zrange 命令会按 score 值递增排序, zrevrange命令会按score递减排序。具有相同 score 值的成员按字典序/逆字典序排列。 可以通过使用 WITHSCORES 选项,来让成员和它的 score 值一并返回。
- zrangebyscore key min max [WITHSCORES] [LIMIT offset count]/zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或max )的成员。有序集成员按 score 值递增/递减次序排列。具有相同 score 值的成员按字典序/逆字典序排列。可选的 LIMIT 参数指定返回结果的数量及区间(就像 SQL 中的SELECT LIMIT offset, count ),注意当 offset 很大时,定位 offset 的操作可能需要遍历整个有序集,此过程效率可能会较低。可选的 WITHSCORES 参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score 值一起返回。
- zcard key 返回集合的长度
- zcount key min max
返回有序集 key 中,score 值在 min 和 max 之间 ( 默认包括 score 值等于 min 或 max ) 的成员的数量。
-
zincrby key increment member 为有序集 key 的成员 member 的 score 值加上增量 increment 。
- zrank/zrevrank key member 返回有序集 key 中成员 member 的排名。zrank 命令会按 score 值递增排序,zrevrank 命令会按 score 递减排序。
- zrem key member..... 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。
- zremrangebyrank key start stop 移除有序集 key 中,指定排名(rank)区间内的所有成员。
- zremrangebyscore key min max 移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或max )的成员。
- zrangebylex key min max [LIMIT offset count] 该命令仅适用于集合中所有成员都具有相同分值的情况。当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的字典序(lexicographical ordering)来进行排序。即这个命令返回给定集合中元素值介于 min 和 max 之间的成员。如果有序集合里面的成员带有不同的分值, 那么命令的执行结果与zrange key 效果相同。
- zlexcount key min max 该命令仅适用于集合中所有成员都具有相同分值的情况。该命令返回该集合中元素值本身(而非 score 值)介于 min 和 max 范围内的元素数量。
- zremrangebylex key min max 该命令仅适用于集合中所有成员都具有相同分值的情况。该命令会移除该集合中元素值本身介于 min 和 max 范围内的所有元素。