一、Set集合类型详解1、概述set集合是无序的;

set集合里面的值是不允许重复的;

set相关命令都是以s开头的;

2、添加元素格式:代码语言:javascript复制sadd key value演示:3、获取set集合的元素格式:代码语言:javascript复制smembers key演示:4、判断某个元素是否存在于某set集合中格式:代码语言:javascript复制sismember key value演示:5、获取set集合中元素的个数格式:代码语言:javascript复制scard key演示:6、移除指定的元素格式:代码语言:javascript复制srem key value演示:7、随机获取set集合中的一个元素格式:代码语言:javascript复制srandmember key演示:8、随机获取指定个数的元素格式:代码语言:javascript复制srandmember key number演示:9、随机移除一个元素(随机移除指定数量的元素)格式:代码语言:javascript复制spop key (number)演示:10、将一个set集合中的指定元素移动到另一个集合里面格式:代码语言:javascript复制smove key1 key2 value

# key1指的是原集合,key2指的是目标集合,value指的是指定的要移动的元素演示:11、set集合的差集、交集、并集格式:代码语言:javascript复制sdiff key1 key2

# key1 - key2

sinter key1 key2

# key1与key2交集

sunion key1 key2

# key1与key2并集演示:二、Hash(哈希)类型详解1、概述类似于一个Key-Map集合,key-,也是key-vlaue集合,这是value是一个map;

相关操作以h开头;

这是一个集合!并非一个单一的值!

2、添加和获取值格式:代码语言:javascript复制hset key field value

# 存

hget key field

# 取演示:3、批量添加格式:代码语言:javascript复制hmset key field1 v1 field2 v2 。。。 以此类推即可演示:4、批量获取格式:代码语言:javascript复制hmget key field1 field2 field3 。。。以此类推即可演示:5、获取全部是数据格式:代码语言:javascript复制hgetall key演示:6、删除指定key的字段(对应的value也随之删除)格式:代码语言:javascript复制hdel key field演示:7、获取hash表的字段数量格式:代码语言:javascript复制hlen key演示:8、判断hash中的指定字段是否存在格式:代码语言:javascript复制hexists key field演示:9、获取hash的所有字段格式:代码语言:javascript复制hkeys hash演示:10、获取hash的所有字段格式:代码语言:javascript复制hvals key演示:11、自增、自减格式:代码语言:javascript复制hincrby key field num

# 自增num为正数,自减num为负数演示:12、如果不存在则添加(类似String字符串)格式:代码语言:javascript复制hsetnx key field value演示:13、使用场景变更数据,name,age,sex等等;

hash更适合存储对象;

String更适合字符串存储;

例如:三、Zset(有序集合)1、概述在set的基础上增加了一个值,set k1 v1 zset k1 score1 v1;

命令以z开头;

2、添加、获取代码语言:javascript复制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"3、排序代码语言:javascript复制127.0.0.1:6379> zrangebyscore zset -inf +inf # 按照score排序,从负无穷到正无穷

1) "hello"

2) "zibo"

3) "world"

4) "dog"4、附带信息的排序代码语言:javascript复制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"5、降序排序代码语言:javascript复制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"6、移除指定元素代码语言:javascript复制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"7、获取zset集合的元素数量代码语言:javascript复制127.0.0.1:6379> zcard zset

(integer) 38、统计存于一个范围的元素的数量代码语言:javascript复制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> 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>9、备注其他的api,可以到官网去查看;

10、应用思路班级成绩、公司工资排序;

带权重的消息;

排行榜;