Redis(2)Redis数据类型,难点是set

Redis中存储数据是通过key-value存储的,对于value的类型有以下几种(key都是string):
字符串 Map<String, String>
Hash类型 Map<String, Map<String, String>>
List Map<String, List>
Set Map<String, HasSet>
SortedSet(zset) Map<String, TreeSet>
在redis中的命令语句中,命令是忽略大小写的,而key是不忽略大小写的。
在这里插入图片描述

value为String数据类型操作:Map<String, String>

set name zhangsan
set age 18
get name
get age
incr age
incrby age 2
del age

获取多个键值
mset k1 v1 k2 v2 k3 v3
mset k1 10 k2 20 k3 30

设置数据存在的时间
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
set aaa 10 EX 10

value为Hash数据类型操作:Map<String, Map<String, String>>

hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:
在这里插入图片描述
hset hubei wuhan 20
hget hubei wuhan
hget hubei
del hubei
hincrby hubei wuhan 2
同时赋予多值,取多值
hmset hash1 name zhangsan sex 1

hmget hash1 name sex age
获取所有键值
hgetall hash1

value为List数据类型操作:Map<String, List>

lpush : 插入到队首
rpush: 插入到队尾
lpush list1 123 Map<list1,List(123)>
lpush list1 456 Map<list1,List(456,123)>
rpush list1 789 Map<list1,List(456,123,789)>
lrange list1 0 -1 -1表示获取最后一个,这个命令的意思是获取所有值
lrange list1 0 2 List脚标从0开始

弹出列表,则表示从列表中删除
lpop list1
获取列表长度
llen list1

value为Set数据类型操作:Map<String, List>

List和set的区别:
List是有序且可重复
Set是无序唯一。

sadd set1 1 2 2 3 3 4 5
smembers set1

  1. “1”
  2. “2”
  3. “3”
  4. “4”
  5. “5”

srem set1 3 删除value为3的元素

sismember set1 3 判断元素3是否存在

运算命令
差集:sdiff set1 set2 属于set1并且不属于set2的元素构成的集合。
交集:sinter set1 set2 属于set1且属于set2的元素构成的集合。
并集:属于set1 或者属于set2的元素构成的集合 sunion set1 set2

sortedset(zset)

Zset是唯一且有序的。
Zset是通过score 来进行排序的。

zadd zset1 1 haha 3 hehe 2 heihei

  1. “haha”
  2. “heihei”
  3. “hehe”

zrange zset1 0 1

  1. “haha”
  2. “heihei”

降序排序
zrevrange zset1 0 1

  1. “hehe”
  2. “heihei”

zrem zset1 haha:删掉haha
zscore zset1 hehe:显示hehe的score

升序,查看 元素及值
zrange zset1 0 1 withscores

  1. “haha”
  2. “1”
  3. “heihei”
  4. “2”

增加某元素的分数,返回值是更改后的分数
ZINCRBY scoreboard 4 lisi
"4“ ,每次执行一次+4

获取元素的排名
升序,从小到大
语法:ZRANK key member
ZRANK scoreboard lisi

降序,从大到小
语法:ZREVRANK key member
ZREVRANK scoreboard zhangsan

zset的其他命令当用的zset时可以自行补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值