Redis命令

3.1字符串

字符串可以存储三种类型的值:

  1.字节串

  2.整形

  3.浮点数

 

  INCRE

  DECR

  INCRBY

  DECRBY

  INCRBYFLOAT

  MGET 获取多个key的值

  MSET 设置多个key的值

  只能对可以解释为整数或浮点数的值进行上述命令,若不能讲值解释为整数或者浮点数则返回错误。

   STRLEN 字符串长度

  APPEND

  GETRANGE

  SETRANGE

  PSETEX 以毫秒为单位设置 key 的value和生存时间。

  SETEX 以秒为单位设置 key 的value和生存时间。

 一个命令涉及多字符串

  MSET

  MGET

  MSETNX 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在

  GETSET 

 位命令:

  GETBIT

  SETBIT

  BITCOUNT key [start]  [end]  可用于统计用户上线数

  BITPOS key bit [start] [end] 返回位图中第一个值为 bit 的二进制位的位置

BITOP operation destkey key [key...] 对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。 operation 可以是 AND 、 OR 、 NOT 、 XOR

BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]

  后续讲解:使用字串操作和二进制位操作,配合WATCH  MULTI EXEC命令使用,手动构建任何想要的数据结构。字符串存储简单的映射,某些情况下节省大量的内存。

 

3.2列表

1.常用命令

  RPUSH

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

  LPUSH

  LPUSHX

  RPOP

  LPOP

  LINDEX

  LRANGE

  LTRIM

  LLEN  返回key长度

  LREM

  LSET

  LREM 移除 count个列表中与 value 相等的元素。

  LINSERT

2.

  BLPOP

  BRPOP

  RPOPLPUSH

  BRPOPLPUSH

  阻塞弹出命令和弹出并推入命令 常见用于 消息传递 和 任务队列

3.3集合

1.常用命令

  SADD

  SREM

  SISMEMBER 是否存在元素

  SSCAN 

  SCARD  集合包含元素数量

  SRANDMEMBER 随机返回元素 可选参数count为负数时可能返回重复元素

  SPOP 随机移除

  SMOVE 从一个集合中移除并添加到另一个集合

2. 用户组合和处理多个集合的命令

  SDIFF 差集 存在于第一个集合 不存在与第二个集合

  SDIFFSTORE 

  SINTER 交集

  SINTERSTORE

  SUNION 并集

  SUNIONSTORE

 

 3.4散列

1.常用命令

  HMGET 

  HMSET

  HDEL

  HLEN 域数量

  HSTRLEN 哈希键对应值的长度

  

2.

  HSETNX

  HEXISTS 散列中是否存在某个键

  HKEYS 散列所有的键

  HVALS 散列所有的值

  HGETALL 散列所有键值对

  HINCRBY

  HINCRBYFLOAT

  HSCAN 参考SCAN

 3.5有序集合

1.常用命令

  ZADD

  ZREM

  ZINCRBY

  ZCOUNT 两个分数间的成员数量

  ZCARD 返回基数(总数)

  ZRANK 返回排名

  ZSCORE 返回分数

  ZRANGE 

  ZSCAN 参考SCAN

2.其他

  ZREVRANK 返回排名 (从大到小顺序的排名)

  ZREVRANGE 

  ZRANGEBYSCORE 

  ZREVRANGEBYSCORE

  ZREMRANGEBYRANK 移除排名..之间的成员

  ZREMRANGEBYSCORE 移除分值..之间的成员

  ZINTERSTORE (可以操作一个集合,例如 集合内分值减半) 类似交集

  ZUNIONSTORE 类似并集

  ZRANGEBYLEX当有序集合的所有成员都具有相同的分值时, 有序集合的元素会根据成员的字典序(lexicographical ordering)来进行排序, 而这个命令则可以返回给定的有序集合键 key 中, 值介于 min 和 max 之间的成员。

如果有序集合里面的成员带有不同的分值, 那么命令返回的结果是未指定的(unspecified)。

使用场景  1. 取姓名A开头的所有姓名:ZRANGEBYLEX  nameset  [a  (b     使用场景2. 取电话号码段(与取姓名类似)

  ZREMRANGEBYLEX

  ZLEXCOUNT

  有序集合score都相同时按照key排序

其他命令

  1. SORT  可以对列表,集合排序,根据alpha排序,基于外部数据元素排序并返回外部数据以及存储(唯一一个可以同时处理3种不同类型的数据的命令)

  2. 事务:

      WATCH  MULTI  EXEC   UNWATCH  DISCARD

   

   DISCARD:

   Flushes all previously queued commands in a transaction and restores the connection state to normal. If WATCH was used, DISCARD unwatches all keys watched by the connection.

   取消事务,放弃执行事务块内的所有命令。 取消 WATCH 命令对所有 key 的监视。

   如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。

   因为 EXEC 命令会执行事务,因此 WATCH 命令的效果已经产生了;而 DISCARD 命令在取消事务的同时也会取消所有对 key 的监视,因此这两个命令执行之后,就没有必要执行 UNWATCH 了。

  3. 过期时间命令

   PERSIST 移除过期时间

  TTL 查看过期时间

  EXPIRE 指定过期时间

  EXPIREAT 指定UNIX时间戳为过期时间

  PTTL 查看过期时间单位毫秒

  PEXPIRE 指定过期时间单位毫秒

  PEXPIREAT 指定UNIX时间戳为过期时间 单位毫秒

       4.

  SCAN  SSCAN  HSCAN  ZSCAN 都用于增量迭代 (COUNT 参数只是一种提示,但是大多数情况下有效)

  每次返回少量的元素,不会像KEYS、SMEMBERS命令一样,当数据库中键很多,集合项很多时,阻塞redis服务器。

  在对键进行增量迭代过程中,如果从开始遍历到结束期间,一直存在于数据集,SCAN总会在某次迭代中返回这个元素。

  但是SCAN也存在如下缺点:

    多次返回同一个元素,需要客户端排重

    元素在迭代过程中新加入到reids中,或者迭代过程中删除,则可能会返回这个元素,也可能不会返回。

  

    

连接

posted @ 2018-12-09 23:09  vvf  阅读(178)  评论(0编辑  收藏  举报