文章目录


Key的层级结构

思考

Redis没有类似MySQL中的table概念,我们该如何区分不同类型的key呢?

  • 例如:需要存储用户、商品信息到redis中,有一个用户id是1,有一个商品id恰好也是1.

Redis的key允许有多个单词形成层级结构,多个单词之间用 :隔开,格式如:项目名:业务名:类型:id,这个格式也并非是固定的,可以根据自己的需求来进行删除或者添加词条。

  • user相关的 key -> ​zyx:user:1​
  • product相关的 key -> ​zyx:product:1​

如果value是一个java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:

【Redis】Key的层级结构_数据库

利用上述的思想我们在Redis中存储两个User对象数据和两个Product对象数据:

127.0.0.1:6379[2]> SET zyx:user:1 '{"id":1, "name":"Jack", "age": 21}'
OK
127.0.0.1:6379[2]> SET zyx:user:2 '{"id":1, "name":"Rose", "age": 18}'
OK
127.0.0.1:6379[2]> SET zyx:product:1 '{"id":1, "name":"小米11", "price": 4999}'
OK
127.0.0.1:6379[2]> SET zyx:product:2 '{"id":2, "name":"荣耀6", "price": 2999}'
OK
127.0.0.1:6379[2]> KEYS *
1) "zyx:product:2"
2) "zyx:user:2"
3) "zyx:user:1"
4) "zyx:product:1"

当我们通过图像化界面打开的时候可以清晰地发现我们存储的User、Product对象数据进行了文件分类,实现了层级结构:

【Redis】Key的层级结构_数据_02

返回顶部