
set集合是无序的;
set集合里面的值是不允许重复的;
set相关命令都是以s开头的;
sadd key value
smembers key
sismember key value
scard key
srem key value
srandmember key
srandmember key number
spop key (number)
smove key1 key2 value
# key1指的是原集合,key2指的是目标集合,value指的是指定的要移动的元素
sdiff key1 key2
# key1 - key2
sinter key1 key2
# key1与key2交集
sunion key1 key2
# key1与key2并集
类似于一个Key-Map集合,key-<key-vlaue>,也是key-vlaue集合,这是value是一个map;
相关操作以h开头;
这是一个集合!并非一个单一的值!
hset key field value
# 存
hget key field
# 取
hmset key field1 v1 field2 v2 。。。 以此类推即可
hmget key field1 field2 field3 。。。以此类推即可
hgetall key
hdel key field
hlen key
hexists key field
hkeys hash
hvals key
hincrby key field num
# 自增num为正数,自减num为负数
hsetnx key field value
变更数据,name,age,sex等等;
hash更适合存储对象;
String更适合字符串存储;

在set的基础上增加了一个值,set k1 v1 zset k1 score1 v1;
命令以z开头;
127.0.0.1:6379> zadd zset 1 hello # 添加一个元素
(integer) 1
127.0.0.1:6379> zadd zset 2 zibo 3 world 4 dog # 添加多个元素
(integer) 3
127.0.0.1:6379> zrange zset 0 -1 # 获取所有元素
1) "hello"
2) "zibo"
3) "world"
4) "dog"127.0.0.1:6379> zrangebyscore zset -inf +inf # 按照score排序,从负无穷到正无穷
1) "hello"
2) "zibo"
3) "world"
4) "dog"127.0.0.1:6379> zrangebyscore zset -inf +inf withscores
1) "hello"
2) "1"
3) "zibo"
4) "2"
5) "world"
6) "3"
7) "dog"
8) "4"127.0.0.1:6379> zrevrangebyscore zset +inf -inf withscores
1) "dog"
2) "4"
3) "world"
4) "3"
5) "zibo"
6) "2"
7) "hello"
8) "1"127.0.0.1:6379> zrange zset 0 -1
1) "hello"
2) "zibo"
3) "world"
4) "dog"
127.0.0.1:6379> zrem zset zibo
(integer) 1
127.0.0.1:6379> zrange zset 0 -1
1) "hello"
2) "world"
3) "dog"127.0.0.1:6379> zcard zset
(integer) 3127.0.0.1:6379> zrange zset 0 -1
1) "hello"
2) "zibo"
3) "world"
4) "dog"
127.0.0.1:6379> zrem zset zibo
(integer) 1
127.0.0.1:6379> zeange zset 0 -1
(error) ERR unknown command 'zeange'
127.0.0.1:6379> zrange zset 0 -1
1) "hello"
2) "world"
3) "dog"
127.0.0.1:6379> zcard zset
(integer) 3
127.0.0.1:6379> zcount zset 2 4
(integer) 2
127.0.0.1:6379>其他的api,可以到官网去查看;
班级成绩、公司工资排序;
带权重的消息;
排行榜;