-
- 1. 字符串相关操作
- 1. 设置值(set key value)
- 2. 获取值(get key), 删除(del key)
- 3. 不存在才设置,否则返回0 (setnx key value)
- 4. 设置有效期(setex key seconds value)
- 5. 字符串替换(setrange key offset value)
- 6. 一次设置多个值(mset key value [key value …])
- 7. 先获取后设置(getset key value)
- 8. 对某个值递增或递减(incr key,decr key)
- 9. 指定长度增加或减少(incrby key increment,decrby key increment)
- 10. 字符串追加(append key value)
- 11. 获取字符串长度(strlen key)
- 2. Hash 类型
- 3. List 类型操作
- 4. Set和ZSet集合
- 1. 添加元素(sadd key member [member…])
- 2. 删除元素(srem key member [member…])
- 3. spop 随机弹出元素(spop key)
- 4. 集合不同元素,前面那个为标准(sdiff key key…)
- 5. sdiffstore 将返回的不同元素存储到新的集合中
- 6. 取集合交集(sinter key [key…])
- 7. 集合取并集(sunion key [key…])
- 8. 移动集合中元素(smove source destination member)
- 9. 查看集合中元素个数(scard key)
- 10. 集合是否包含元素(sismember key member)
- 11. 随机返回set中元素(srandmember key count)
- 12. ZSet 添加元素
- 13. Zset删除元素(zrem key member [member…])
- 14. 自动递增或递减(zincrby key increment member)
- 15. 查找根据分数区间范围(zrangebyscore )
- 16. 根据索引号范围删除(zremrangebyrank)
- 17. 根据分数范围删除(zremrangebyscore)
- 18. 返回Zset元素索引号(zrank key member)
- 19. 根据分数范围查找(zrangebyscore )
- 20. Zset元素个数(zcard key)
- 21. Zset分数在指定范围元素个数(zcount key min max)
- 22. 根据索引范围删除(zremrangebyrank key start stop)
- 1. 字符串相关操作
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
"123456789@ww.com"
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"