redis学习(七)

时间:2022-07-24
本文章向大家介绍redis学习(七),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

hash(哈希)

Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的 key-vlaue!

127.0.0.1:6666> hset hash u1 cxy # 设置单个值
(integer) 1
127.0.0.1:6666> hmset hash u2 ccc u3 sss # 设置多个值
OK
127.0.0.1:6666> hmget hash u1 u2 # 获取多个值
1) "cxy"
2) "ccc"
127.0.0.1:6666> hgetall hash # 获取所有值
1) "u1"
2) "cxy"
3) "u2"
4) "ccc"
5) "u3"
6) "sss"
127.0.0.1:6666> hdel hash u1 # 删除指定值
(integer) 1
127.0.0.1:6666> hgetall hash
1) "u2"
2) "ccc"
3) "u3"
4) "sss"
# hlen
127.0.0.1:6666> hmset hash u1 cxy u4 iii
OK
127.0.0.1:6666> hgetall hash
1) "u2"
2) "ccc"
3) "u3"
4) "sss"
5) "u1"
6) "cxy"
7) "u4"
8) "iii"
127.0.0.1:6666> hlen hash # 获取hash的长度
(integer) 4
# 判断set集合中是否存在某个值
127.0.0.1:6666> hexists hash u1
(integer) 1
127.0.0.1:6666> hexists hash 11
(integer) 0
# 只获取所有的key,和所有的value
127.0.0.1:6666> hkeys hash
1) "u2"
2) "u3"
3) "u1"
4) "u4"
127.0.0.1:6666> hvals hash
1) "ccc"
2) "sss"
3) "cxy"
4) "iii"
# 指定增量 hincrby
127.0.0.1:6666> hset hash u5 5
(integer) 1
127.0.0.1:6666> hincrby hash u5 10
(integer) 15
127.0.0.1:6666> hincrby hash u5 -10
(integer) 5
127.0.0.1:6666> hsetnx hash u6 122 # 不存在才会新增成功。
(integer) 1
127.0.0.1:6666> hsetnx hash u1 11
(integer) 0

hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息! hash 更适合于对象的 存储,String更加适合字符串存储!

zset(有序集合)

在set的基础上,增加了一个类似于id的属性

127.0.0.1:6666> zadd zset 1 one # 增加一个,或多个
(integer) 1
127.0.0.1:6666> zadd zset 2 two 3 three
(integer) 2
127.0.0.1:6666> zrange zset 0 -1 # 查看所有zset
1) "one"
2) "two"
3) "three"
# zset排序
127.0.0.1:6666> zadd zset 2500 xiaobai
(integer) 1
127.0.0.1:6666> zadd zset 5000 zhangsan
(integer) 1
127.0.0.1:6666> zadd zset 500 cuixiaoyan
(integer) 1
127.0.0.1:6666> zrangebyscore zset -inf +inf # 从小到大进行排序,升序。
1) "cuixiaoyan"
2) "xiaobai"
3) "zhangsan"
127.0.0.1:6666> zrevrange zset 0 -1 # 从大到小进行排序,降序。
1) "zhangsan"
2) "xiaobai"
3) "cuixiaoyan"
127.0.0.1:6666> zrangebyscore zset -inf +inf withscores # 升序,并显示类似id的值。
1) "cuixiaoyan"
2) "500"
3) "xiaobai"
4) "2500"
5) "zhangsan"
6) "5000"
127.0.0.1:6666> zrangebyscore zset -inf 2500 withscores # 最大不超过两千五的。
1) "cuixiaoyan"
2) "500"
3) "xiaobai"
4) "2500"
# 移除元素rem
127.0.0.1:6666> zrange zset 0 -1 # 查看zset中所有值
1) "cuixiaoyan"
2) "xiaobai"
3) "zhangsan"
127.0.0.1:6666> zrem zset zhangsan # 删除指定值
(integer) 1
127.0.0.1:6666> zrange zset 0 -1
1) "cuixiaoyan"
2) "xiaobai"
127.0.0.1:6666> zcard zset # 获取个数
(integer) 2
127.0.0.1:6666> zadd zset 1 c 2 x 3 y
(integer) 3
127.0.0.1:6666> zcount zset 13
# 获取指定区间
127.0.0.1:6666> zadd zset 1 c 2 x 3 y
(integer) 3
127.0.0.1:6666> zcount zset 1 3
(integer) 3
127.0.0.1:6666> zcount zset 1 2
(integer) 2

案例思路:set 排序 存储班级成绩表,工资表排序! 普通消息,1, 重要消息 2,带权重进行判断! 排行榜应用实现,取Top N 测试!