Redis-cli 常用命令与实例

1. 字符串相关操作

1. 设置值(set key value)

# set key value [EX seconds] [PX milliseconds] [NX|XX]
127.0.0.1:6379> set name test1
OK

2. 获取值(get key), 删除(del key)

# get key
127.0.0.1:6379> get name
"test1"

3. 不存在才设置,否则返回0 (setnx key value)

# setnx key value
127.0.0.1:6379> setnx name test2
(integer) 0

4. 设置有效期(setex key seconds value)

# setex key seconds value
127.0.0.1:6379> setex test1 10 test1
OK

5. 字符串替换(setrange key offset value)

# setrange key offset value

127.0.0.1:6379> set email 123456789@qq.com
OK
127.0.0.1:6379> setrange email 10 ww
(integer) 16
127.0.0.1:6379> get email
"[email protected]"

6. 一次设置多个值(mset key value [key value …])

# mset key value [key value ...]
127.0.0.1:6379> mset test1 test1 test2 test2 test3 test3
OK
# mget key [key...]
127.0.0.1:6379> mget test1 test2 test3
1) "test1"
2) "test2"
3) "test3"

7. 先获取后设置(getset key value)

# getset key value

127.0.0.1:6379> getset test1 test@1
"test1"
127.0.0.1:6379> get test1
"test@1"

8. 对某个值递增或递减(incr key,decr key)

127.0.0.1:6379> set index 1
OK
127.0.0.1:6379> incr index
(integer) 2
127.0.0.1:6379> decr index
(integer) 1

9. 指定长度增加或减少(incrby key increment,decrby key increment)

127.0.0.1:6379> incrby index 3
(integer) 4
127.0.0.1:6379> decrby index 2
(integer) 2

10. 字符串追加(append key value)

127.0.0.1:6379> get name
"test1"
# append key value
127.0.0.1:6379> append name test
(integer) 9
127.0.0.1:6379> get name
"test1test"

11. 获取字符串长度(strlen key)

127.0.0.1:6379> get name
"test1test"
127.0.0.1:6379> strlen name
(integer) 9

2. Hash 类型

1. 设置或取值(hset key field value,hget key field)

# hset key field value
127.0.0.1:6379> hset user id 1
(integer) 1
127.0.0.1:6379> hset user name zhangsan
(integer) 1
127.0.0.1:6379> hset user age 18
(integer) 1
# hget key field
# 注意,取值的时候需要指定hash中的field
127.0.0.1:6379> hget user
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget user name
"zhangsan"
127.0.0.1:6379> hget user id
"1"
127.0.0.1:6379> hget user age
"18"

2. 批量设置或获取(hmset ,hmget)

# hmset key field value [field value ...]
127.0.0.1:6379> hmset user1 id 10 name lisi age 18
OK
# 获取时也必须要指定field
127.0.0.1:6379> hmget user1
(error) ERR wrong number of arguments for 'hmget' command
# hmget  key field [field ...]
127.0.0.1:6379> hmget user1 id name age
1) "10"
2) "lisi"
3) "18"

3. 不存在才设置(hsetnx key field value)

127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user 已经存在id,在设置返回0标示失败
127.0.0.1:6379> hsetnx user id 2
(integer) 0
127.0.0.1:6379> hmget user id age name
1) "1"
2) "18"
3) "zhangsan"
# user 不存在sex,返回1设置成功
127.0.0.1:6379> hsetnx user sex 1
(integer) 1
127.0.0.1:6379> hmget user id age name sex
1) "1"
2) "18"
3) "zhangsan"
4) "1"

4. 判断key 在hash中是否存在(hexists key field)

# 存在返回1,不存在返回0
127.0.0.1:6379> hexists user id
(integer) 1
127.0.0.1:6379> hexists user score
(integer) 0

5. 集合递增(hincrby)

# hincrby key field increment
127.0.0.1:6379> hget user id
"2"
127.0.0.1:6379> hincrby user id 1
(integer) 3
127.0.0.1:6379> hget user id
"3"

6. 集合field个数(hlen), (hkeys)返回hash中所有field

127.0.0.1:6379> hlen user
(integer) 4
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"

7. 删除hash指定field(hdel)


127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"
4) "sex"
# hdel key field
127.0.0.1:6379> hdel user sex
(integer) 1
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "age"

8. 获取hash中所有值(hvals key)

127.0.0.1:6379> hvals user
1) "3"
2) "zhangsan"
3) "18"

9. 获取hash中key和value(hgetall key)

127.0.0.1:6379> hgetall user 
1) "id"
2) "3"
3) "name"
4) "zhangsan"
5) "age"
6) "18"

3. List 类型操作

可以使用List实现队列或者栈,可理解为横向数组,取数据从左端取
List 下标从左往右 0,1,2,3…; 从右往左 -1,-2,-3,-4…

1. lpush 左端添加,相当于栈先进后出

# lpush 依次添加到list左端
# lpush key value [value...]
127.0.0.1:6379> lpush list1 hello world
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "hello"

2. rpush 右端添加,相当于在队尾添加元素

# rpush 在List右端添加元素
# rpush key value [value...]
127.0.0.1:6379> rpush list2 hello world
(integer) 2
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"

3. 插入元素(linsert key before|after pivot value)

# linsert key before|after pivot value
127.0.0.1:6379> linsert list1 before 'hello' test
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"

4. 指定下标元素替换(lset key index value)

127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test"
3) "hello"
127.0.0.1:6379> lset list1 1 test1
OK
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test1"
3) "hello"

5. 删除元素(lrem key count value)

count > 0 从左往右 删除count个
count < 0 从右往左 删除count个
count = 0 删除所有匹配

127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "test2"
3) "world"
127.0.0.1:6379> lrem list1 1 test2
(integer) 1
127.0.0.1:6379> lrange list1 0 -1
1) "world"
2) "world"

6. 保留指定范围内的数据(rtrim key start stop)

127.0.0.1:6379> rpush lists i love java hello world
(integer) 5
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> ltrim lists 0 3
OK
127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"

7. lpop 从左端弹出元素

127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"

8. rpop 从右端弹出元素

127.0.0.1:6379> lrange lists 0 -1
1) "i"
2) "love"
3) "java"
4) "hello"
5) "world"
127.0.0.1:6379> lpop lists
"i"
127.0.0.1:6379> rpop lists
"world"

9 rpoplpush 右端弹出左端添加

127.0.0.1:6379> lrange lists 0 -1
1) "love"
2) "java"
3) "hello"
# rpoplpush source destination
127.0.0.1:6379> rpoplpush lists lists
"hello"
127.0.0.1:6379> lrange lists 0 -1
1) "hello"
2) "love"
3) "java"

10. lindex 返回List中索引为index的元素


127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"
127.0.0.1:6379> lindex lists 0
"java"
127.0.0.1:6379> lindex lists -1
"i"
127.0.0.1:6379> lindex lists -2
"love"
127.0.0.1:6379> lindex lists -3
"java"

11. llen 返回List中元素个数

127.0.0.1:6379> lrange lists 0 -1
1) "java"
2) "love"
3) "i"

127.0.0.1:6379> llen lists
(integer) 3

4. Set和ZSet集合

set 无序,Zset有序;元素不能重复,可以做集合操作交集、并集、差集

1. 添加元素(sadd key member [member…])

127.0.0.1:6379> sadd set1 i love java
(integer) 3
127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"

2. 删除元素(srem key member [member…])

127.0.0.1:6379> smembers set1
1) "love"
2) "java"
3) "i"

127.0.0.1:6379> srem set1 i love
(integer) 2
127.0.0.1:6379> smembers set1
1) "java"

3. spop 随机弹出元素(spop key)

127.0.0.1:6379> SMEMBERS set1
1) "love"
2) "c++"
3) "i"
4) "java"
127.0.0.1:6379> spop set1
"love"
127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"

4. 集合不同元素,前面那个为标准(sdiff key key…)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sdiff set1 set2
1) "java"
127.0.0.1:6379> sdiff set2 set1
1) "love"
2) "python"

5. sdiffstore 将返回的不同元素存储到新的集合中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> sdiffstore set3 set2 set1
(integer) 2
127.0.0.1:6379> smembers set3
1) "love"
2) "python"

6. 取集合交集(sinter key [key…])

sinterstore 取交集并存在新的set中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
127.0.0.1:6379> sinter set1 set2
1) "c++"
2) "i"

7. 集合取并集(sunion key [key…])

sunionstore 取并集并存储到新的set中

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> sunion set1 set2
1) "love"
2) "c++"
3) "i"
4) "python"
5) "java"

8. 移动集合中元素(smove source destination member)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
3) "java"
127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"

127.0.0.1:6379> smove set1 set2 java
(integer) 1

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"

127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"

9. 查看集合中元素个数(scard key)

127.0.0.1:6379> smembers set1
1) "c++"
2) "i"
127.0.0.1:6379> scard set1
(integer) 2

10. 集合是否包含元素(sismember key member)

127.0.0.1:6379> smembers set2
1) "python"
2) "love"
3) "c++"
4) "i"
5) "java"
127.0.0.1:6379> sismember set2 i
(integer) 1
127.0.0.1:6379> sismember set2 c
(integer) 0

11. 随机返回set中元素(srandmember key count)

127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"
127.0.0.1:6379> srandmember set2 2
1) "i"
2) "java"
127.0.0.1:6379> smembers set2
1) "love"
2) "i"
3) "c++"
4) "python"
5) "java"

12. ZSet 添加元素

ZSet 中添加元素:zadd key [NX|XX] [CH] [INCR] score member [score member …]

显示zset中元素:zrange key start stop [WITHSCORES]


127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 c++ 5 python
(integer) 5
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrange zset 0 -1 withscores
(empty list or set)
127.0.0.1:6379> zrange zset1 0 -1 withscores
 1) "i"
 2) "1"
 3) "love"
 4) "2"
 5) "java"
 6) "3"
 7) "c++"
 8) "4"
 9) "python"
10) "5"

13. Zset删除元素(zrem key member [member…])

127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "c++"
5) "python"
127.0.0.1:6379> zrem zset1 i
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "love"
2) "java"
3) "c++"
4) "python"

14. 自动递增或递减(zincrby key increment member)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "8"
127.0.0.1:6379> zincrby zset1 10 love
"18"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "18"

127.0.0.1:6379> zincrby zset1 -5 love
"13"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "c++"
4) "4"
5) "python"
6) "5"
7) "love"
8) "13"

15. 查找根据分数区间范围(zrangebyscore )


127.0.0.1:6379> zrange zset1 0 -1 withscores
 1) "java"
 2) "3"
 3) "c++"
 4) "4"
 5) "python"
 6) "5"
 7) "age"
 8) "10"
 9) "love"
10) "13"
127.0.0.1:6379> zrangebyscore zset1 5 20
1) "python"
2) "age"
3) "love"

16. 根据索引号范围删除(zremrangebyrank)


127.0.0.1:6379> zadd zset1 1 i 2 love 3 java 4 python 5 c++ 6 c
(integer) 6
127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zremrangebyrank zset1 0 1
(integer) 2
127.0.0.1:6379> zrange zset1 0 -1
1) "java"
2) "python"
3) "c++"
4) "c"

17. 根据分数范围删除(zremrangebyscore)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "java"
2) "3"
3) "python"
4) "4"
5) "c++"
6) "5"
7) "c"
8) "6"
127.0.0.1:6379> zremrangebyscore zset1 3 5
(integer) 3
127.0.0.1:6379> zrange zset1 0 -1
1) "c"

18. 返回Zset元素索引号(zrank key member)

zrevrank key member 按照倒序方式获取索引

127.0.0.1:6379> zrange zset2 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zrank zset2 python
(integer) 3

19. 根据分数范围查找(zrangebyscore )

127.0.0.1:6379> zrange zset2 0 -1 withscores
 1) "i"
 2) "1"
 3) "love"
 4) "2"
 5) "java"
 6) "3"
 7) "python"
 8) "4"
 9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zrangebyscore zset2 1 3
1) "i"
2) "love"
3) "java"
127.0.0.1:6379> zrangebyscore zset2 1 3 withscores
1) "i"
2) "1"
3) "love"
4) "2"
5) "java"
6) "3"

20. Zset元素个数(zcard key)


127.0.0.1:6379> zrange zset2 0 -1
1) "i"
2) "love"
3) "java"
4) "python"
5) "c++"
6) "c"
127.0.0.1:6379> zcard zset2
(integer) 6

21. Zset分数在指定范围元素个数(zcount key min max)


127.0.0.1:6379> zrange zset2 0 -1 withscores
 1) "i"
 2) "1"
 3) "love"
 4) "2"
 5) "java"
 6) "3"
 7) "python"
 8) "4"
 9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zcount zset2 1 3
(integer) 3

22. 根据索引范围删除(zremrangebyrank key start stop)


127.0.0.1:6379> zrange zset2 0 -1 withscores
 1) "i"
 2) "1"
 3) "love"
 4) "2"
 5) "java"
 6) "3"
 7) "python"
 8) "4"
 9) "c++"
10) "5"
11) "c"
12) "6"
127.0.0.1:6379> zremrangebyrank zset2 0 2
(integer) 3
127.0.0.1:6379> zrange zset2 0 -1 withscores
1) "python"
2) "4"
3) "c++"
4) "5"
5) "c"
6) "6"

猜你喜欢

转载自blog.csdn.net/afgasdg/article/details/80473628
今日推荐