redis基本数据类型及其使用命令

redis基本数据类型及其使用命令:

1.基本数据类型:STRING(字符串),LIST(列表),SET(集合),HASH(哈希),ZSET(有序集合),HyperLogLog(做基数统计),GEO(存储地理坐标)

字符串常用命令:

1.字符串

GET SET DEL

基本语法

SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]
GET KEY
DEL KEY [key ...]
127.0.0.1:6379> SET K1 V1
OK

127.0.0.1:6379> GET K1
"V1"

127.0.0.1:6379> del K1
(integer) 1

127.0.0.1:6379> get K1
(nil)

redis自增自减命令

INCR 将键存储的值加1
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> INCR k1
(integer) 2
127.0.0.1:6379> get k1
"2"
DECR 将键存储的值减1
127.0.0.1:6379> GET k1
"2"
127.0.0.1:6379> DECR k1
(integer) 1
127.0.0.1:6379> GET k1
"1"
INCRBY 将键存储的值加上一个整数amount
127.0.0.1:6379> GET k1
"1"
127.0.0.1:6379> INCRBY k1 2
(integer) 3
127.0.0.1:6379> GET k1
"3"
DECRBY 将键存储的值减去证书amount
127.0.0.1:6379> GET k1
"3"
127.0.0.1:6379> DECRBY k1 2
(integer) 1
127.0.0.1:6379> GET k1
"1"
INCRBYFLOAT 将键存储的值加上一个浮点数amount
127.0.0.1:6379> GET k1
"1"
127.0.0.1:6379> INCRBYFLOAT k1 2.5
"3.5"
127.0.0.1:6379> GET k1
"3.5"

redis处理字符串和二进制命令

GETRANGE ---> GETRANGE KEY START END:获取KEY值从start到end的新的字符串
127.0.0.1:6379> set k3 abcdefghijklmn ex 20000
OK
127.0.0.1:6379> GETRANGE k3 1 5
"bcdef"
APPEND ---> APPEND KEY VALUE 将值value追加到指定键key对应值末尾
127.0.0.1:6379> set k1 abc
OK
127.0.0.1:6379> GET k1
"abc"
127.0.0.1:6379> APPEND k1 def
(integer) 6
127.0.0.1:6379> GET k1
"abcdef"
SETRANGE ---> SETRANGE KEY OFFSET VALUE 将从OFFSET偏移量开始的字符串设置为指定VALUE
127.0.0.1:6379> GET k1
"abcdef"
127.0.0.1:6379> SETRANGE k1 4 aaabbb
(integer) 10
127.0.0.1:6379> GET k1
"abcdaaabbb"
GETBIT ---> GETBIT KEY OFFSET 将字符串看作是二进制位串,并返回位串中偏移量为OFFSET的二进制位的值
127.0.0.1:6379> GET k1
"abcdaaabbb"
127.0.0.1:6379> GETBIT k1 1
(integer) 1
127.0.0.1:6379> GETBIT k1 2
(integer) 1
127.0.0.1:6379> GETBIT k1 3
(integer) 0
127.0.0.1:6379> GETBIT k1 4
(integer) 0
SETBIT ---> SETBIT KEY OFFSET VALUE 将字符串看作是二进制位串,并将位串中偏移量为OFFSET的二进制位设置位VALUE
127.0.0.1:6379> GET k1
"abcdaaabbb"
127.0.0.1:6379> SETBIT k1 1 2
(error) ERR bit is not an integer or out of range
127.0.0.1:6379> SETBIT k1 1 0
(integer) 1
127.0.0.1:6379> GET k1
"!bcdaaabbb"
BITCOUNT KEY [START END]--->统计二进制位串里面值为1的二进制位的数量,如果给定了可选的START偏移量和END偏移量,那么只对指定范围的二进制位进行统计
127.0.0.1:6379> GET k1
"100"
127.0.0.1:6379> BITCOUNT k1
(integer) 7
127.0.0.1:6379> BITCOUNT k1 1 5
(integer) 4

2.列表

RPUSH ---> RPUSH KEY VALUE [VALUE ...] 将一个或多个值推入列表的右端
127.0.0.1:6379> RPUSH k1 a b c d
(integer) 4
127.0.0.1:6379> LRANGE k1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379>
LPUSH ---> LPUSH KEY VALUE [VALUE ...]将一个或多个值推入列表左侧
127.0.0.1:6379> LRANGE k1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> LPUSH k1 w g j
(integer) 7
127.0.0.1:6379> LRANGE k1 0 -1
1) "j"
2) "g"
3) "w"
4) "a"
5) "b"
6) "c"
7) "d"
RPOP ---> RPOP KEY 从右侧移除列表元素
127.0.0.1:6379> LRANGE k1 0 -1
1) "j"
2) "g"
3) "w"
4) "a"
5) "b"
6) "c"
7) "d"
127.0.0.1:6379> RPOP k1
"d"
127.0.0.1:6379> LRANGE k1 0 -1
1) "j"
2) "g"
3) "w"
4) "a"
5) "b"
6) "c"
LPOP ---> LPOP KEY 从左侧移除列表元素
127.0.0.1:6379> LRANGE k1 0 -1
1) "j"
2) "g"
3) "w"
4) "a"
5) "b"
6) "c"
127.0.0.1:6379> LPOP k1
"j"
127.0.0.1:6379> LRANGE k1 0 -1
1) "g"
2) "w"
3) "a"
4) "b"
5) "c"

LRANGE ---> LRANGE KEY START END 返回列表从START开始到END偏移量范围的所有元素,包含START和END所在位置的值

127.0.0.1:6379> LRANGE k1 0 -1
1) "g"
2) "w"
3) "a"
4) "b"
5) "c"
127.0.0.1:6379> LRANGE k1 0 3
1) "g"
2) "w"
3) "a"
4) "b"
LTRIM ---> LTRIM KEY START END 将列表裁剪,保留START至END内的元素,包含START与END对应的值
127.0.0.1:6379> LRANGE k1 0 -1
1) "g"
2) "w"
3) "a"
4) "b"
5) "c"
127.0.0.1:6379> LTRIM k1 2 -1
OK
127.0.0.1:6379> LRANGE k1 0 -1
1) "a"
2) "b"
3) "c"

阻塞式的列表弹出命令以及再列表中移动元素的命令

BLPOP ---> BLPOP KEY [KEY ...] TIMEOUT(时间单位是秒)从第一个非单位最左端移出元素,或者在timeout秒内阻塞并等待可弹出得到元素出现
127.0.0.1:6379> BLPOP k2 20

BRPOP ---> BRPOP KEY [KEY ...] TIMEOUT(时间单位秒) 从第一个非单位最右端移出元素,或者在timeout秒内阻塞并等待可弹出得到元素出现
127.0.0.1:6379> LPUSH k1 a b c d e
(integer) 5
127.0.0.1:6379> BRPOP k1 10
1) "k1"
2) "a"
127.0.0.1:6379> LRANGE k1 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
RPOPLPUSH ---> RPOPLPUSH source-key dest-key 从source-key列表中弹出位于最右侧的元素,然后将这个元素存入dest-key
127.0.0.1:6379> LRANGE k1 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
127.0.0.1:6379> RPOPLPUSH k1 k2
"b"
127.0.0.1:6379> LRANGE k2 0 -1
1) "b"
127.0.0.1:6379> LRANGE k1 0 -1
1) "e"
2) "d"
3) "c"
BRPOPLPUSH ---> BRPOPLPUSH source-key dest-key TIMEOUT 从source_key 列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出元素出现。
127.0.0.1:6379> LRANGE k2 0 -1
1) "b"
127.0.0.1:6379> LRANGE k1 0 -1
1) "e"
2) "d"
3) "c"
127.0.0.1:6379> BRPOPLPUSH k1 k2 10
"c"
127.0.0.1:6379> LRANGE k1 0 -1
1) "e"
2) "d"
127.0.0.1:6379> LRANGE k2 0 -1
1) "c"
2) "b"

3.集合

常用命令

SADD ---> SADD key item [item ...]将一个或多个元素添加到集合中
127.0.0.1:6379> SADD k1 a b c d e
(integer) 5
127.0.0.1:6379> SMEMBERS k1
1) "d"
2) "b"
3) "a"
4) "c"
5) "e"
SREM --->SREM key-name item [item ...] 从集合中移除一个或多个元素
127.0.0.1:6379> SMEMBERS k1
1) "d"
2) "b"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SREM k1 a b
(integer) 2
127.0.0.1:6379> SMEMBERS k1
1) "c"
2) "d"
3) "e"
SISMEMBER ---> SISMEMBER key item 检查元素item是否存在集合key中
127.0.0.1:6379> SMEMBERS k1
1) "c"
2) "d"
3) "e"
127.0.0.1:6379> SISMEMBER k1 c
(integer) 1
127.0.0.1:6379> SISMEMBER k1 a
(integer) 0
SCARD ---> SCARD key 返回key包含的元素数量
127.0.0.1:6379> SMEMBERS k1
1) "d"
2) "c"
3) "e"
127.0.0.1:6379> SCARD k1
(integer) 3
SMEMBERS ---> SMEMBERS key 查看key所有的元素
127.0.0.1:6379> SMEMBERS k1
1) "d"
2) "c"
3) "e"
SRANDMEMBER ---> SRANDMEMBER key [count] 随机返回一个或多个元素
127.0.0.1:6379> SRANDMEMBER k1
"d"
127.0.0.1:6379> SRANDMEMBER k1 2
1) "e"
2) "c"
SPOP ---> SPOP key [count] 随机删除返回一个或多个元素
127.0.0.1:6379> spop k1 1
1) "d"
127.0.0.1:6379> SMEMBERS k1
1) "c"
2) "e"
SMOVE ---> SMOVE source-key dest-key item 如果集合包含元素item,那么从集合source-key里面移除元素item,并将元素item添加到集合dest-key中。
127.0.0.1:6379> SMOVE k1 k2 c
(integer) 1
127.0.0.1:6379> SMEMBERS k2
1) "c"
127.0.0.1:6379> SMEMBERS k1
1) "e"

用于组合和处理多个集合的redis命令

SDIFF ---> SDIFF key [key ...] 返回存在于第一个集合但不存在其他集合中的元素
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "g"
3) "c"
4) "h"
5) "d"
127.0.0.1:6379> SDIFF k1 k2
1) "a"
2) "b"
3) "e"
SDIFFSTORE ---> SDIFFSTORE dest-key key [key ...]将那些存在于第一个集合但并不存在其他集合中的元素存储到dest-key中
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "g"
3) "c"
4) "h"
5) "d"
127.0.0.1:6379> SDIFFSTORE k3 k1 k2
(integer) 3
127.0.0.1:6379> SMEMBERS k3
1) "a"
2) "b"
3) "e"
SINTER ---> SINTER key [key ...] 返回同时在所有集合的元素(交集)
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "h"
3) "d"
4) "c"
5) "g"
127.0.0.1:6379> SINTER k1 k2
1) "d"
2) "c"
SINTERSTORE ---> SINTERSTORE dest-key key [key ...]求key的交集,然后将交集存储在dest-key中
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "h"
3) "d"
4) "c"
5) "g"
127.0.0.1:6379> SINTERSTORE k4 k1 k2
(integer) 2
127.0.0.1:6379> SMEMBERS k4
1) "d"
2) "c"
SUNION ---> SUNION key [key ...] 求所有元素的并集
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "h"
3) "d"
4) "c"
5) "g"
127.0.0.1:6379> SUNION k1 k2
1) "h"
2) "b"
3) "f"
4) "d"
5) "a"
6) "g"
7) "c"
8) "e"
SUNIONSTORE ---> SUNIONSTORE dest-key key[key ...] 将所有元素取并集并存入dest-key中
127.0.0.1:6379> SMEMBERS k1
1) "b"
2) "d"
3) "a"
4) "c"
5) "e"
127.0.0.1:6379> SMEMBERS k2
1) "f"
2) "h"
3) "d"
4) "c"
5) "g"
127.0.0.1:6379> SUNIONSTORE k5 k1 k2
(integer) 8
127.0.0.1:6379> SMEMBERS k5
1) "h"
2) "b"
3) "f"
4) "d"
5) "a"
6) "g"
7) "c"
8) "e"

散列

HMGET ---> HMGET key-name key [key ...] 从散列中获取一个或多个键的值
127.0.0.1:6379> HMSET k1 key1 value1 key2 value2
OK
127.0.0.1:6379> HMGET k1 key1
1) "value1"
127.0.0.1:6379> HMGET k1 key2
1) "value2"
HMSET ---> HMSET key key value [key value ...]为散列里面的一个或多个键设置值
127.0.0.1:6379> HMSET k1 key1 value1 key2 value2
OK
127.0.0.1:6379> HMGET k1 key1
1) "value1"
127.0.0.1:6379> HMGET k1 key2
1) "value2"
HLEN ---> HLEN key 返回散列包含的键值对数量
127.0.0.1:6379> HLEN k1
(integer) 2
HDEL key-nme key [key ...] 删除散列里面的一个或多个键值对
127.0.0.1:6379> HLEN k1
(integer) 2
127.0.0.1:6379> HDEL k1 key1
(integer) 1
127.0.0.1:6379> HLEN k1
(integer) 1
127.0.0.1:6379> HGET k1 key2
"value2"
HEXISTS ---> HEXISTS key-name key 检查给定的键是否在散列中
127.0.0.1:6379> HSET k1 key1 value1 key2 value2 key3 value3
(integer) 3
127.0.0.1:6379> HEXISTS k1 key1
(integer) 1
127.0.0.1:6379> HEXISTS k1 key4
(integer) 0
HKEYS key-name 获取散列中包含的所有键
127.0.0.1:6379> HKEYS k1
1) "key1"
2) "key2"
3) "key3"
HVALS ---> HVALS key-name 获取散列中所有的值
127.0.0.1:6379> HVALS k1
1) "value1"
2) "value2"
3) "value3"
HGETALL ---> HGETALL key-name 获取散列包含的所有键值对
127.0.0.1:6379> HGETALL k1
1) "key1"
2) "value1"
3) "key2"
4) "value2"
5) "key3"
6) "value3"
HINCRBY ---> HINCRBY key-name key increment 将键key存储的值加上整数increment
127.0.0.1:6379> HSET k2 k 1
(integer) 1
127.0.0.1:6379> HINCRBY k2 k 2
(integer) 3
127.0.0.1:6379> HGET k2 k
"3"
HINCRBYFLOAT ---> HINCRBYFLOAT key-name key increment 将键存储的值加上浮点数increment
127.0.0.1:6379> HINCRBYFLOAT k2 k 0.2
"3.2"
127.0.0.1:6379> HGET k2 k
"3.2"

有序集合

ZADD ---> ZADD key-name score member [score member ...] 将带有给定分值的成员添加到有序的集合里面
127.0.0.1:6379> ZADD k1 1 one 2 two 3 three 4 four 5 five
(integer) 5
127.0.0.1:6379> ZRANGE k1 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
5) "five"
127.0.0.1:6379> ZRANGE k1 0 -1 WITHSCORES
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
ZREM ---> ZREM key-name member [member ...] 从有序集合里面移除给定的成员,并返回被移除的成员数量
127.0.0.1:6379> ZRANGE k2 0 -1 withscores
1) "c"
2) "5"
3) "a"
4) "10"
5) "d"
6) "15"
7) "b"
8) "20"
127.0.0.1:6379> ZREM k1 a b
(integer) 0
127.0.0.1:6379> ZRANGE k1 0 -1 WITHSCORES
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
ZINCRBY ---> ZINCRBY key-name increment member 将member成员
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
127.0.0.1:6379> ZINCRBY k1 10 one
"11"
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
ZCOUNT key-name min max 返回分值介于min和max之间的成员数量
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZCOUNT k1 5 8
(integer) 1
ZRANK key-name member 返回成员member在有序集合中的排名
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZRANK k1 five
(integer) 3
127.0.0.1:6379> ZRANK k1 two
(integer) 0
ZSCORE ---> ZSCORE key-name member 返回成员member的分值
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZSCORE k1 three
"3"
ZRANGE ---> ZRANGE key-name start end [withscores] 返回有序集合排名介于start和stop之间的成员,可选定withscores选项,那么命令会将承运的分值也一并返回
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"

有序集合的范围型数据获取命令和范围

ZREVRANK ---> ZREVRANK key-name member 返回有序集合里成员member的排名,成员按照分值从大到小排列
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZREVRANK k1 five
(integer) 1
ZREVRANGE ---> ZREVRANGE key-name 0 -1 [withscores] 返回有序集合给定排名范围的成员,成员按照分值从大到小排列
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZREVRANGE k1 0 -1 withscores
 1) "one"
 2) "11"
 3) "five"
 4) "5"
 5) "four"
 6) "4"
 7) "three"
 8) "3"
 9) "two"
10) "2"
127.0.0.1:6379> ZREVRANGE k1 0 -1
1) "one"
2) "five"
3) "four"
4) "three"
5) "two"
ZRANGEBYSCORE ---> ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 获取有序集合中,分值介于min和max之间的所有成员
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"

127.0.0.1:6379> ZRANGEBYSCORE k1 3 8
1) "three"
2) "four"
3) "five"
127.0.0.1:6379> ZRANGEBYSCORE k1 3 8  withscores
1) "three"
2) "3"
3) "four"
4) "4"
5) "five"
6) "5"

127.0.0.1:6379> ZRANGEBYSCORE k1 3 8 withscores limit 0 10
1) "three"
2) "3"
3) "four"
4) "4"
5) "five"
6) "5"

127.0.0.1:6379> ZRANGEBYSCORE k1 3 8 withscores limit 1 10
1) "four"
2) "4"
3) "five"
4) "5"

127.0.0.1:6379> ZRANGEBYSCORE k1 3 8 withscores limit 2 10
1) "five"
2) "5"
ZREMRANGEBYRANK ---> ZREMRANGEBYRANK key-name start stop 移除有序集合中排名介于start和stop之间的所有成员
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "two"
 2) "2"
 3) "three"
 4) "3"
 5) "four"
 6) "4"
 7) "five"
 8) "5"
 9) "one"
10) "11"
127.0.0.1:6379> ZREMRANGEBYRANK k1 0 2
(integer) 3
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
1) "five"
2) "5"
3) "one"
4) "11"
ZREMRANGEBYSCORE ---> ZREMRANGEBYSCORE key-name min max 移除有序集合中分值介于min和max之间所有的成员
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
1) "five"
2) "5"
3) "one"
4) "11"
127.0.0.1:6379> ZREMRANGEBYSCORE k1 5 8
(integer) 1
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
1) "one"
2) "11"
ZINTERSTORE ---> ZINTERSTORE dest-key key-count key [key ...] [WEIGHT weight [weight ...]] 对给定的有序集合执行类似于集合的交集运算
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "five"
10) "5"
11) "six"
12) "6"
13) "seven"
14) "7"
127.0.0.1:6379> ZRANGE k2 0 -1 withscores
 1) "five"
 2) "5"
 3) "six"
 4) "6"
 5) "seven"
 6) "7"
 7) "eight"
 8) "8"
 9) "nine"
10) "9"
11) "ten"
12) "10"
127.0.0.1:6379> ZINTERSTORE k3 2 k1 k2
(integer) 3
127.0.0.1:6379> ZRANGE k3 0 -1 withscores
1) "five"
2) "10"
3) "six"
4) "12"
5) "seven"
6) "14"
127.0.0.1:6379> ZINTERSTORE k4 10 k1 k2
(error) ERR syntax error
127.0.0.1:6379> ZINTERSTORE k4 9 k1 k2
(error) ERR syntax error
127.0.0.1:6379> ZINTERSTORE k4 3 k1 k2
(error) ERR syntax error
127.0.0.1:6379> ZINTERSTORE k4 2 k1 k2
(integer) 3
ZUNIONSTORE ---> ZUNIONSTORE dest-key key-count key [key ...] [WEIGHTS weight [weight ...]] [[AGGREGATE SUM|MIN|MAX]] 对给定的有序集合执行类似于集合的并集运算
127.0.0.1:6379> ZUNIONSTORE k5 2 k1 k2
(integer) 10
127.0.0.1:6379> ZRANGE k5 0 -1 withscores
 1) "one"
 2) "1"
 3) "two"
 4) "2"
 5) "three"
 6) "3"
 7) "four"
 8) "4"
 9) "eight"
10) "8"
11) "nine"
12) "9"
13) "five"
14) "10"
15) "ten"
16) "10"
17) "six"
18) "12"
19) "seven"
20) "14"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,183评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,850评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,766评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,854评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,871评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,457评论 1 311
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,999评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,914评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,465评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,543评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,675评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,354评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,029评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,514评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,616评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,091评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,685评论 2 360

推荐阅读更多精彩内容