11.Redis的相关命令详解
11.Redis的相关命令详解
关于命令的学习查询看这两个网站:
http://www.redis.net.cn/order/
http://redisdoc.com/
1. 常用命令
keys *
: 获取所有的keyselect 0
: 选择第一个库move key dbIndex
: 将当前的数据库key移动到某个数据库,目标库有,则不能移动flushdb
: 清除指定库randomkey
: 从当前数据库中随机返回type key
: 类型del key1
: 删除keyexists key
: 判断是否存在keyexpire 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开始替换valueincr age
: 递增incrby age 10
递增decr age
递减decrby age 10
递减incrbyfloat
增减浮点数append
追加strlen
长度object encoding key
: 得到key的编码类型。
string里面有三种编码:
- int: 用于能够副作用64位有符号整数表示的字符串
- embstr: 用于长度小于或等于44字节,Redis3.x中是39字节,这种类型的编码在内存使用时性能更好
- 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位置的元素为elementLTRIM 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和value1
2
3
4
5
6
7127.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 ...]
: 删除keyHKEYS key
: 获取hash表的所有keyHVALS key
: 获取hash表的所有valueHLEN 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
22127.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及其scoreZINCRBY key increment member
: 增加zset中member的scoreZSCORE key member
: 获取zset中member的scoreZRANGE 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
36127.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
18127.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
4127.0.0.1:6379> ZCARD myzset1
(integer) 6
127.0.0.1:6379> ZCOUNT myzset1 20 50
(integer) 3ZREM key member [member ...]
: 删除一个或多个元素1
2127.0.0.1:6379> ZREM myzset1 one two
(integer) 2ZREMRANGEBYRANK 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
30127.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
21127.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) 5Zinterstore
: 计算给定的一个或多个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
33127.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"