Redis的Hash、Set和Zset基础命令
2021/5/14 2:27:19
本文主要是介绍Redis的Hash、Set和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的Hash、Set和Zset基础命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31Tiny RDM:你的下一代Redis桌面GUI神器-icode9专业技术文章分享
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!