欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

程序员文章站 2022-04-02 21:20:58
...

目录

一、Set集合类型详解

1、概述

2、添加元素

格式:

演示:

3、获取set集合的元素

格式:

演示:

4、判断某个元素是否存在于某set集合中

格式:

演示:

5、获取set集合中元素的个数

格式:

演示:

6、移除指定的元素

格式:

演示:

7、随机获取set集合中的一个元素

格式:

演示:

8、随机获取指定个数的元素

格式:

演示:

9、随机移除一个元素(随机移除指定数量的元素)

格式:

演示:

10、将一个set集合中的指定元素移动到另一个集合里面

格式:

演示:

11、set集合的差集、交集、并集

格式:

演示:

二、Hash(哈希)类型详解

1、概述

2、添加和获取值

格式:

演示:

3、批量添加

格式:

演示:

4、批量获取

格式:

演示:

5、获取全部是数据

格式:

演示:

6、删除指定key的字段(对应的value也随之删除)

格式:

演示:

7、获取hash表的字段数量

格式:

演示:

8、判断hash中的指定字段是否存在

格式:

演示:

9、获取hash的所有字段

格式:

演示:

10、获取hash的所有字段

格式:

演示:

11、自增、自减

格式:

演示:

12、如果不存在则添加(类似String字符串)

格式:

演示:

13、使用场景

例如:

三、Zset(有序集合)

1、概述

2、添加、获取

3、排序

4、附带信息的排序

5、降序排序

6、移除指定元素

7、获取zset集合的元素数量

8、统计存于一个范围的元素的数量

9、备注

10、应用思路


一、Set集合类型详解

1、概述

set集合是无序的;

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

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

 

2、添加元素

格式:

sadd key value

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

3、获取set集合的元素

格式:

smembers key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

4、判断某个元素是否存在于某set集合中

格式:

sismember key value

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

5、获取set集合中元素的个数

格式:

scard key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

6、移除指定的元素

格式:

srem key value

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

7、随机获取set集合中的一个元素

格式:

srandmember key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

8、随机获取指定个数的元素

格式:

srandmember key number

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

9、随机移除一个元素(随机移除指定数量的元素)

格式:

spop key (number)

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

10、将一个set集合中的指定元素移动到另一个集合里面

格式:

smove key1 key2 value

# key1指的是原集合,key2指的是目标集合,value指的是指定的要移动的元素

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

11、set集合的差集、交集、并集

格式:

sdiff key1 key2

# key1 - key2

sinter key1 key2

# key1与key2交集

sunion key1 key2

# key1与key2并集

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

二、Hash(哈希)类型详解

1、概述

类似于一个Key-Map集合,key-<key-vlaue>,也是key-vlaue集合,这是value是一个map;

相关操作以h开头;

 

2、添加和获取值

格式:

hset key field value

# 存

hget key field

# 取

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

3、批量添加

格式:

hmset key field1 v1 field2 v2 。。。 以此类推即可

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

4、批量获取

格式:

hmget key field1 field2 field3 。。。以此类推即可

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

5、获取全部是数据

格式:

hgetall key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

6、删除指定key的字段(对应的value也随之删除)

格式:

hdel key field

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

7、获取hash表的字段数量

格式:

hlen key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

8、判断hash中的指定字段是否存在

格式:

hexists key field

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

9、获取hash的所有字段

格式:

hkeys hash

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

10、获取hash的所有字段

格式:

hvals key

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

11、自增、自减

格式:

hincrby key field num

# 自增num为正数,自减num为负数

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

12、如果不存在则添加(类似String字符串)

格式:

hsetnx key field value

演示:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

13、使用场景

变更数据,name,age,sex等等;

hash更适合存储对象;

String更适合字符串存储;

例如:

【Redis】004-Redis五大数据类型:Set集合、Hash类型、Zset有序集合

 

三、Zset(有序集合)

1、概述

在set的基础上增加了一个值,set k1 v1 zset k1 score1 v1;

命令以z开头;

 

2、添加、获取

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、排序

127.0.0.1:6379> zrangebyscore zset -inf +inf # 按照score排序,从负无穷到正无穷
1) "hello"
2) "zibo"
3) "world"
4) "dog"

 

4、附带信息的排序

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、降序排序

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、移除指定元素

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集合的元素数量

127.0.0.1:6379> zcard zset
(integer) 3

 

8、统计存于一个范围的元素的数量

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、应用思路

班级成绩、公司工资排序;

带权重的消息;

排行榜;

 

 

 

 

 

 

 

 

相关标签: Redis redis