set
往set中加入一个zhangsan
127.0.0.1:16379[3]> sadd set zhangsan
(integer) 1
往set中加入一个zhangsan (返回结果:(integer) 0)被去重了
127.0.0.1:16379[3]> sadd set zhangsan
(integer) 0
获取 set 中的所有成员
127.0.0.1:16379[3]> SMEMBERS set
1) "zhangsan"
往set集合中添加多个值 lisi wangwu zhaoliu
127.0.0.1:16379[3]> sadd set lisi wangwu zhaoliu
(integer) 3
获取 set 中的所有成员
127.0.0.1:16379[3]> SMEMBERS set
1) "zhaoliu"
2) "wangwu"
3) "lisi"
4) "zhangsan"
判断 set集合中是否存在lisi 存在返回1
127.0.0.1:16379[3]> SISMEMBER set lisi
(integer) 1
判断 set集合中是否存在haha 没有返回0
127.0.0.1:16379[3]> SISMEMBER set haha
(integer) 0
移除set中的值为zhaoliu的元素
127.0.0.1:16379[3]> SREM set zhaoliu
(integer) 1
获取所有元素的信息
127.0.0.1:16379[3]> smembers set
1) "wangwu"
2) "lisi"
3) "zhangsan"
随机获取 set 中的一个元素
127.0.0.1:16379[3]> SRANDMEMBER set
"lisi"
随机获取 set 中的两个元素
127.0.0.1:16379[3]> SRANDMEMBER set 2
1) "lisi"
2) "wangwu"
获取set中所有的元素信息
127.0.0.1:16379[3]> SMEMBERS set
1) "wangwu"
2) "lisi"
3) "zhangsan"
获取(弹出)set 中的元素
127.0.0.1:16379[3]> spop set
"zhangsan"
获取set中的所有元素
127.0.0.1:16379[3]> SMEMBERS set
1) "wangwu"
2) "lisi"
获取set中的所有元素
127.0.0.1:16379[3]> SMEMBERS set
1) "wangwu"
2) "lisi"
将set中的lisi元素移动到myset中
127.0.0.1:16379[3]> SMOVE set myset lisi
(integer) 1
获取set中的所有元素此时少了一个叫lisi的元素
127.0.0.1:16379[3]> SMEMBERS set
1) "wangwu"
获取myset中的所有元素此时多了一个叫lisi的元素
127.0.0.1:16379[3]> smembers myset
1) "lisi"
往collection1 中添加了a b c d e 五个元素
127.0.0.1:16379[3]> sadd collection1 a b c d e
(integer) 5
往collection2 中添加了b c d f k 五个元素
127.0.0.1:16379[3]> sadd collection2 b c d f k
(integer) 5
127.0.0.1:16379[3]> SMEMBERS collection1
1) "b"
2) "a"
3) "c"
4) "d"
5) "e"
127.0.0.1:16379[3]> SMEMBERS collection2
1) "f"
2) "b"
3) "c"
4) "d"
5) "k"
比较 collection1 比 collection2 多了哪些元素
127.0.0.1:16379[3]> SDIFF collection1 collection2
1) "a"
2) "e"
比较 collection2 比 collection1 多了哪些元素
127.0.0.1:16379[3]> SDIFF collection2 collection1
1) "f"
2) "k"
集合 collection2 与 collection1 取交集
127.0.0.1:16379[3]> SINTER collection1 collection2
1) "b"
2) "d"
3) "c"
集合 collection2 与 collection1 取并集
127.0.0.1:16379[3]> SUNION collection1 collection2
1) "a"
2) "b"
3) "e"
4) "d"
5) "f"
6) "k"
7) "c"
场景: 微博A用户将所有关注的人放在了一个set的集合中!将它的粉丝也放在了一个集合中
共同关注,共同爱好,二度好友,推荐好友(六度分割理论)
hash
给hash设置一个key为name值为zhangsan的键值对
127.0.0.1:16379[4]> hset hash name zhangsan
(integer) 1
获取hash中key为name的值
127.0.0.1:16379[4]> hget hash name
"zhangsan"
给hash设置一个key为age值为22 与 key为 sex 值为 nan 的两个键值对
127.0.0.1:16379[4]> HSET hash age 22 sex nan
(integer) 2
批量获取hash 中key 为 name、age、sex的值
127.0.0.1:16379[4]> hmget hash name age sex
1) "zhangsan"
2) "22"
3) "nan"
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "sex"
6) "nan"
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "sex"
6) "nan"
删除 hash 中key为sex的值
127.0.0.1:16379[4]> hdel hash sex
(integer) 1
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
批量添加往 hash 中添加值
127.0.0.1:16379[4]> hmset hash score 22 grade 5
OK
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "score"
6) "22"
7) "grade"
8) "5"
获取 hash 的长度
127.0.0.1:16379[4]> hlen hash
(integer) 4
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "score"
6) "22"
7) "grade"
8) "5"
测试 hash 中 name 键是否存在
127.0.0.1:16379[4]> HEXISTS hash name
(integer) 1
测试 hash 中 hah 键是否存在
127.0.0.1:16379[4]> HEXISTS hash hah
(integer) 0
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "score"
6) "22"
7) "grade"
8) "5"
获取 hash 中所有的key值
127.0.0.1:16379[4]> HKEYS hash
1) "name"
2) "age"
3) "score"
4) "grade"
获取 hash 中所有的value值
127.0.0.1:16379[4]> HVALS hash
1) "zhangsan"
2) "22"
3) "22"
4) "5"
获取 hash 中所有的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "score"
6) "22"
7) "grade"
8) "5"
hash中指定key中的值递增
127.0.0.1:16379[4]> HINCRBY hash age 1
(integer) 23
hash中指定key中的值递增
127.0.0.1:16379[4]> HINCRBY hash age 1
(integer) 24
获取hash中指定key的值
127.0.0.1:16379[4]> hget hash age
"24"
设置hash中指定key的值,没有就创建
127.0.0.1:16379[4]> HSETNX hash fav hiking
(integer) 1
设置hash中指定key的值,没有就创建(fav 已经存在所以创建失败)
127.0.0.1:16379[4]> HSETNX hash fav hiking
(integer) 0
获取hash中指定key的值
127.0.0.1:16379[4]> hgetall hash
1) "name"
2) "zhangsan"
3) "age"
4) "24"
5) "score"
6) "22"
7) "grade"
8) "5"
9) "fav"
10) "hiking"
hash 比string更适合操作对象、存储对象毕竟各适其值
127.0.0.1:16379[4]> hmset user:1001 name zhangsan age 23 fav swing
OK
127.0.0.1:16379[4]> hmget user:1001 name age fav
1) "zhangsan"
2) "23"
3) "swing"
zset
往set集合中加一个分值为 1 的 zhangsan
127.0.0.1:16379[5]> zadd set 1 zhangsan
(integer) 1
往set集合中加一个分值为 2 的 lisi
127.0.0.1:16379[5]> zadd set 2 lisi
(integer) 1
往set集合中加一个分值为 3 的 wangwu
127.0.0.1:16379[5]> zadd set 3 wangwu
(integer) 1
获取set中所有的值
127.0.0.1:16379[5]> ZRANGE set 0 -1
1) "zhangsan"
2) "lisi"
3) "wangwu"
按指定区间内分数高低获取成员,区间的范围是是负无穷到正无穷,分数由高到低
127.0.0.1:16379[5]> ZRANGEBYSCORE set -inf +inf
1) "zhangsan"
2) "lisi"
3) "wangwu"
按指定区间内分数高低获取成员,区间的范围是是负无穷到正无穷,分数由低到高倒序并且带有分数
127.0.0.1:16379[5]> ZRANGEBYSCORE set -inf +inf withscores
1) "zhangsan"
2) "1"
3) "lisi"
4) "2"
5) "wangwu"
6) "3"
按指定区间内分数高低获取成员,区间的范围是是负无穷到2(包括2),分数由低到高倒序并且带有分数
127.0.0.1:16379[5]> ZRANGEBYSCORE set -inf 2 withscores
1) "zhangsan"
2) "1"
3) "lisi"
4) "2"
获取set中所有的成员
127.0.0.1:16379[5]> ZRANGE set 0 -1
1) "zhangsan"
2) "wangwu"
获取set的长度
127.0.0.1:16379[5]> ZCARD set
(integer) 2
获取指定set分数区间中的元素个数
127.0.0.1:16379[5]> ZCOUNT set 1 2
(integer) 1
获取指定set分数区间中的元素个数,该分数没有5到6之间的所以是0
127.0.0.1:16379[5]> ZCOUNT set 5 6
(integer) 0