11.Redis的相关命令详解

 

11.Redis的相关命令详解

关于命令的学习查询看这两个网站:

  1. http://www.redis.net.cn/order/
  2. http://redisdoc.com/

1. 常用命令

  • keys *: 获取所有的key
  • select 0: 选择第一个库
  • move key dbIndex: 将当前的数据库key移动到某个数据库,目标库有,则不能移动
  • flushdb: 清除指定库
  • randomkey: 从当前数据库中随机返回
  • type key: 类型
  • del key1: 删除key
  • exists key: 判断是否存在key
  • expire key 10: 设置key的过期时间,单位:秒
  • pexpire key 1000: 设置key的过期时间,单位:毫秒
  • ttl key: 查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • persist key: 设置key永久有效,删除过期时间

2. string类型相关命令

  • set name Tim
  • get name
  • GETRANGE key start end: 负值表示倒数第几个
  • GETSET key new_value: 返回旧值,设置为新值
  • MSET key value [key value ...]: 批量设置
  • MGET key [key ...]: 批量获取
  • setnx key value: 如果key不存在则插入,如果存在key则不插入
  • setrange key index value: 从index开始替换value
  • incr age: 递增
  • incrby age 10 递增
  • decr age 递减
  • decrby age 10 递减
  • incrbyfloat 增减浮点数
  • append 追加
  • strlen 长度
  • object encoding key: 得到key的编码类型。

string里面有三种编码:

  1. int: 用于能够副作用64位有符号整数表示的字符串
  2. embstr: 用于长度小于或等于44字节,Redis3.x中是39字节,这种类型的编码在内存使用时性能更好
  3. raw: 用于长度大于44字节的

3. list【集合数组】

  • LPUSH mylist1 1 2 3 4 5 6 7 8: 左插入
  • RPUSH mylist2 1 2 3 4 5 6 7 8: 右插入
  • LRANGE key start stop: 取出数据集合,index为负值表示倒数第几个
  • lpop mylist2: 弹出集合最后一个元素
  • rpop mylist2: 弹出第一个元素
  • llen mylist: 长度
  • lrem mylist count value: 删除
    1
    2
    3
    4
    |-COUNT 的值可以是以下几种:
    |--count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
    |--count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
    |--count = 0 : 移除表中所有与 VALUE 相等的值。
  • lindex mylist 2: 指定索引的值,index从0开始
  • LSET key index element: 设置index位置的元素为element
  • LTRIM key start stop: 对一个列表进行修剪(trim),只保留列表指定区间内的元素,不在指定区间之内的元素都将被删除。index从0开始,负值表示倒数第几个。
  • LINSERT key BEFORE|AFTER pivot element: 用于在列表的pivot元素的前面或者后面插入element元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果key不是列表类型,返回一个错误。
  • RPOPLPUSH source destination: 转移列表的数据,用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回该元素。

4. hash

  • HSET key field value [field value ...]
  • HMSET key field value [field value ...]
    1
    2
    3
    |--命令用于为哈希表中的字段赋值。
    |--如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
    |--如果字段已经存在于哈希表中,旧值将被覆盖。
  • HGET key field: 获取hash表字段的值
  • HMGET key field [field ...]: 获取hash表多个字段的值
  • hgetall myhash: 获取所有的key和value
    1
    2
    3
    4
    5
    6
    7
    127.0.0.1:6379> HGETALL person1
    1) "id"
    2) "1"
    3) "name"
    4) "Jim"
    5) "age"
    6) "20"
  • HEXISTS key field: key是否存在
  • HSETNX key field value: 设置key的值,如果key不存在则设置,如果key存在则不设置
  • HINCRBY key field increment: 递增
  • HDEL key field [field ...]: 删除key
  • HKEYS key: 获取hash表的所有key
  • HVALS key: 获取hash表的所有value
  • HLEN key: 获取hash表的长度

5. set

  • SADD key member [member ...]: 向set集合中添加元素
  • SREM key member [member ...]: 移除set集合中的元素
  • SISMEMBER key member: 判断元素是否在set集合中
  • SCARD key: set集合的元素个数

集合间运算

  • SDIFF key [key ...]: 差集,以第一个set集合为参照
  • SINTER key [key ...]: 交集
  • SUNION key [key ...]: 并集
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    127.0.0.1:6379> SMEMBERS score
    1) "90"
    2) "100"
    3) "120"
    4) "130"
    127.0.0.1:6379> SMEMBERS number
    1) "100"
    2) "200"
    3) "300"
    127.0.0.1:6379> SDIFF score number
    1) "90"
    2) "120"
    3) "130"
    127.0.0.1:6379> SINTER score number
    1) "100"
    127.0.0.1:6379> SUNION score number
    1) "90"
    2) "100"
    3) "120"
    4) "130"
    5) "200"
    6) "300"
  • SRANDMEMBER key [count]: 随机获取集合中的元素
  • SPOP key [count]: 随机移除集合中的一个元素并返回

    

6. zset

  • ZADD key [NX|XX] [CH] [INCR] score member [score member ...]: 向zset中添加member及其score

  • ZINCRBY key increment member: 增加zset中member的score

  • ZSCORE key member: 获取zset中member的score

  • ZRANGE key start stop [WITHSCORES]: 获取zset中的值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    127.0.0.1:6379> zadd myzset1 10 one 5 two 3 three
    (integer) 3
    127.0.0.1:6379> ZRANGE myzset1 0 -1
    1) "three"
    2) "two"
    3) "one"
    127.0.0.1:6379> ZINCRBY myzset1 20 three
    "23"
    127.0.0.1:6379> ZRANGE myzset1 0 -1
    1) "two"
    2) "one"
    3) "three"
    127.0.0.1:6379> ZSCORE myzset1 one
    "10"
    127.0.0.1:6379> ZADD myzset1 30 four 50 five 60 six
    (integer) 3
    127.0.0.1:6379> zrange myzset1 0 -1
    1) "two"
    2) "one"
    3) "three"
    4) "four"
    5) "five"
    6) "six"
    127.0.0.1:6379> zrange myzset1 0 -1 withscores
    1) "two"
    2) "5"
    3) "one"
    4) "10"
    5) "three"
    6) "23"
    7) "four"
    8) "30"
    9) "five"
    10) "50"
    11) "six"
    12) "60"
  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]: 通过分数返回有序集合指定区间内的成员

  • ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]: 返回有序集中指定分数区间内的成员,分数从高到低排序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    127.0.0.1:6379> ZRANGEBYSCORE myzset1 0 100 withscores limit 1 2
    1) "one"
    2) "10"
    3) "three"
    4) "23"
    127.0.0.1:6379> ZREVRANGEBYSCORE myzset1 100 0 withscores
    1) "six"
    2) "60"
    3) "five"
    4) "50"
    5) "four"
    6) "30"
    7) "three"
    8) "23"
    9) "one"
    10) "10"
    11) "two"
    12) "5"
  • ZCARD key: 获取zset的成员数

  • ZCOUNT key min max: 获得zset中指定区间分数的成员数

    1
    2
    3
    4
    127.0.0.1:6379> ZCARD myzset1
    (integer) 6
    127.0.0.1:6379> ZCOUNT myzset1 20 50
    (integer) 3
  • ZREM key member [member ...]: 删除一个或多个元素

    1
    2
    127.0.0.1:6379> ZREM myzset1 one two
    (integer) 2
  • ZREMRANGEBYRANK key start stop: 移除zset中给定的排名区间的所有成员

  • ZREMRANGEBYSCORE key min max: 移除zset中给定的分数区间的所有成员

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    127.0.0.1:6379> ZRANGE myzset1 0 -1
    1) "one"
    2) "two"
    3) "three"
    4) "four"
    5) "five"
    6) "six"
    127.0.0.1:6379> ZREMRANGEBYRANK myzset1 0 1
    (integer) 2
    127.0.0.1:6379> ZRANGE myzset1 0 -1
    1) "three"
    2) "four"
    3) "five"
    4) "six"
    127.0.0.1:6379> ZRANGE myzset1 0 -1 withscores
    1) "three"
    2) "23"
    3) "four"
    4) "30"
    5) "five"
    6) "50"
    7) "six"
    8) "60"
    127.0.0.1:6379> ZREMRANGEBYSCORE myzset1 20 30
    (integer) 2
    127.0.0.1:6379> ZRANGE myzset1 0 -1 withscores
    1) "five"
    2) "50"
    3) "six"
    4) "60"
  • ZRANK key member: 返回zset中指定member的index,index从0开始

  • ZREVRANK key member: 返回zset中指定member的score排名,score排名从大到小排序,从0开始

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    127.0.0.1:6379> zrange myzset1 0 -1 withscores
    1) "one"
    2) "10"
    3) "two"
    4) "20"
    5) "three"
    6) "30"
    7) "four"
    8) "40"
    9) "five"
    10) "50"
    11) "six"
    12) "60"
    127.0.0.1:6379> ZRANK myzset1 one
    (integer) 0
    127.0.0.1:6379> ZRANK myzset1 five
    (integer) 4
    127.0.0.1:6379> ZREVRANK myzset1 two
    (integer) 4
    127.0.0.1:6379> ZREVRANK myzset1 one
    (integer) 5
  • Zinterstore: 计算给定的一个或多个zset的交集并将结果集存储在新的zset key 中

  • Zunionstore: 计算给定的一个或多个zset的并集,并存储在新的 key 中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    127.0.0.1:6379> ZADD myzset1 10 value1 20 value2 30 value3
    (integer) 3
    127.0.0.1:6379> ZADD myzset2 40 value1 50 value2 60 value3
    (integer) 3
    127.0.0.1:6379> ZINTERSTORE mysumzset 2 myzset1 myzset2
    (integer) 3
    127.0.0.1:6379> ZRANGE mysumzset 0 -1 withscores
    1) "value1"
    2) "50"
    3) "value2"
    4) "70"
    5) "value3"
    6) "90"

    127.0.0.1:6379> ZADD myzset1 2000 value1 3500 value2 5000 value3
    (integer) 3
    127.0.0.1:6379> ZADD myzset2 2000 value4 3500 value5 5000 value6
    (integer) 3
    127.0.0.1:6379> ZUNIONSTORE myunionzset 2 myzset1 myzset2 weights 0.5 2
    (integer) 6
    127.0.0.1:6379> ZRANGE myunionzset 0 -1 withscores
    1) "value1"
    2) "1000"
    3) "value2"
    4) "1750"
    5) "value3"
    6) "2500"
    7) "value4"
    8) "4000"
    9) "value5"
    10) "7000"
    11) "value6"
    12) "10000"