Redis的HashSet和Zset基础命令
Posted 只会写error
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的HashSet和Zset基础命令相关的知识,希望对你有一定的参考价值。
set(集合)
set的值是不能重复,且无序的
#############################################################
127.0.0.1:6379> sadd myset a # 向myset集合添加 a
(integer) 1
127.0.0.1:6379> sadd myset c
(integer) 1
127.0.0.1:6379> sadd myset e
(integer) 1
127.0.0.1:6379> smembers myset # 查看myset集合中所有值
1) "e"
2) "c"
3) "a"
127.0.0.1:6379> sismember myset a # 判断myset集合中是否存在a
(integer) 1
127.0.0.1:6379> sismember myset b
(integer) 0
127.0.0.1:6379> scard myset # 获取myset集合中元素个数
(integer) 3
127.0.0.1:6379> srem myset a # 指定移除myset集合中的 a
(integer) 1
127.0.0.1:6379> smembers myset
1) "e"
2) "c"
#############################################################
127.0.0.1:6379> flushdb # 清理数据库
OK
127.0.0.1:6379> sadd set2 1
(integer) 1
127.0.0.1:6379> sadd set2 2
(integer) 1
127.0.0.1:6379> sadd set2 3
(integer) 1
127.0.0.1:6379> sadd set2 4
(integer) 1
127.0.0.1:6379> sadd set2 5
(integer) 1
127.0.0.1:6379> sadd set2 6 # 向set2集合中添加 1~6
(integer) 1
127.0.0.1:6379> smembers set2 # 查看set集合所有元素
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379> srandmember set2 # 随机查看set集合某个元素
"2"
127.0.0.1:6379> srandmember set2 2 # 随机查看set集合 2 个元素
1) "6"
2) "5"
127.0.0.1:6379> spop set2 # 随机弹出set集合某个元素
"6"
127.0.0.1:6379> spop set2 # 随机弹出set集合某个元素
"3"
#############################################################
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd A 1
(integer) 1
127.0.0.1:6379> sadd A 2
(integer) 1
127.0.0.1:6379> sadd A 3 # 向A集合中放入1,2,3
(integer) 1
127.0.0.1:6379> sadd B 2
(integer) 1
127.0.0.1:6379> sadd B 3
(integer) 1
127.0.0.1:6379> sadd B 4 # 向B集合中放入2,3,4
(integer) 1
127.0.0.1:6379> smembers A # 查看A集合所有元素
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> smembers B # 查看B集合所有元素
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> sdiff A B # A、B集合的差集
1) "1"
127.0.0.1:6379> sinter A B # A、B集合的交集
1) "2"
2) "3"
127.0.0.1:6379> sunion A B # A、B集合的并集
1) "1"
2) "2"
3) "3"
4) "4"
Hash(哈希)
类似Map集合,结构为 key-map!本质和String类型没区别,还是key-value,只不过value可以为map集合
#############################################################
127.0.0.1:6379> hset myhash name jh # set一个具体的key-value
(integer) 1
127.0.0.1:6379> hget myhash name # 获取具体字段的值
"jh"
127.0.0.1:6379> hset myhash age 10 height 175 # 设置多个key-value,hmset已经过世直接hset就行
(integer) 2
127.0.0.1:6379> hmget myhash name age # 获取多个具体字段的值
1) "jh"
2) "10"
127.0.0.1:6379> hkeys myhash # 只获取所有key
1) "name"
2) "age"
3) "height"
127.0.0.1:6379> hvals myhash # 只获取所有value
1) "jh"
2) "10"
3) "175"
127.0.0.1:6379> hgetall myhash # 获取全部数据(包括key和value)
1) "name"
2) "jh"
3) "age"
4) "10"
5) "height"
6) "175"
127.0.0.1:6379> hlen myhash # 获取hash表的字段(key)数量
(integer) 3
127.0.0.1:6379> hexists myhash name # 获取hash表是否存在字段name,存在1,不存在0
(integer) 1
127.0.0.1:6379> hexists myhash test # 获取hash表是否存在字段test
(integer) 0
127.0.0.1:6379> hsetnx myhash name spring # 因为hash表中已存在字段name,再设置新值会失败
(integer) 0
127.0.0.1:6379> hget myhash name
"jh"
127.0.0.1:6379> hsetnx myhash test spring # 因为hash表中不存在字段test,可以设置值为spring
(integer) 1
127.0.0.1:6379> hget myhash test
"spring"
127.0.0.1:6379> hincrby myhash age 8 # 给具体字段age增加 8
(integer) 18
Zset(有序集合)
#############################################################################
127.0.0.1:6379> zadd myset 1 one # 向集合中增加一个 值序号 值
(integer) 1
127.0.0.1:6379> zadd myset 2 two 3 three # 向集合中增加多个 值序号 值
(integer) 2
127.0.0.1:6379> zrange myset 0 -1 # 正序(从小到大)查看集合所有元素
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> zadd myset 6 six
(integer) 1
127.0.0.1:6379> zrevrange myset 0 -1 # 逆序(从大到小)查看集合所有元素
1) "six"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> zrange myset 0 1 # 根据下标查看集合指定元素
1) "one"
2) "two"
127.0.0.1:6379> zcount myset 1 3 # 查看[1,3]区间的集合元素个数
(integer) 3
127.0.0.1:6379> zcount myset 1 6 # 查看[1,6]区间的集合元素个数
(integer) 4
127.0.0.1:6379> zrangebyscore myset -inf +inf withscores # 显示负无穷到正无穷所有元素并附带 值序
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "six"
8) "6"
127.0.0.1:6379> zrangebyscore myset -inf 2 withscores # 显示负无穷到2(小于2)的所有元素并附带 值序 进行升序排序
1) "one"
2) "1"
3) "two"
4) "2"
以上是关于Redis的HashSet和Zset基础命令的主要内容,如果未能解决你的问题,请参考以下文章
Redis基础认识内存式NoSQL数据库及简单使用Redis