知识点05:Redis的数据结构及数据类型

  • 目标:掌握Redis的数据结构及数据类型

  • 路径

    • step1:数据结构
    • step2:数据类型
  • 实施

    • 数据结构:整个Reids中****存在

      • K:作为唯一标识符,唯一标识一条数据,固定为String类型,写入时指定KV,读取时,根据K读取V

      • V:真正存储的数据,可以有多种类型

        • String、Hash、List、Set、Zset、BitMap、HypeLogLog
      • 理解Redis:类似于Java中的一个Map集合,可以存储多个KV,根据K获取V

    • 数据类型

      • 每一种类型的应用场景和命令都是不一样的
      • String类型

        • KV:【String,String】,类似于Java中Map集合的一条KV
      • Hash类型

        • KV:【String,Map集合】:Map集合的嵌套,Map集合中的元素是无序的
      • List类型

        • KV:【String,List】:有序且可重复
      • Set类型

        • KV:【String,Set】:无序且不重复
      • Zset类型

        • KV:【String,TreeMap集合】:Value也类似于Map集合,有序的Map集合
        • 类似于List和Set集合特点的合并:有序且不可重复
  • 小结

    • Redis中的数据是什么结构以及有哪些类型?
      • 数据结构:KV
        • K:String:唯一标识一条数据,用于获取Value
        • V:多种类型:存储的数据
      • Value的数据类型
        • String:Java字符串
          • 【String,String】:一般用于存储单个指标的结果
        • Hash:Java Map集合 / Python 中Dic
          • 【String,Map【k1v1,k2v2……】】
        • List:Java List集合:有序且可重复
          • 【String,List[1,2,3,4,5,6,6,7]】
        • Set:Java Set集合:无序且不可重复
          • 【String,Set[1,2,3,4,5]】
        • Zset:有序且不可重复
          • 【String,TreeMap【k1v1,k2v2 => 按照k排序】】
          • k:score:评分,默认按照评分对元素进行排序
          • v:元素,不能重复

知识点06:Redis的通用命令

  • 目标:掌握Redis常用的通用命令

  • 实施

    • :列举当前数据库中所有Key

    • 语法:keys 通配符

    • :删除某个KV

    • exists key :判断某个Key是否存在

    • type key:判断这个K对应的V的类型的

    • :设置某个K的过期时间,一旦到达过期时间,这个K会被自动删除

    • ttl K:查看某个K剩余的存活时间

    • select N:切换数据库的

    • Redis默认由16个数据:db0 ~ db15,个数可以通过配置文件修改,名称不能改

      • Redis是一层数据存储结构:所有KV直接存储在数据库中
    • 默认进入db0

    • move key N:将某个Key移动到某个数据库中

    • flushdb:清空当前数据库的所有Key

    • flushall:清空所有数据库的所有Key

    node1:6379> keys *
    1) "s1"
    node1:6379> get s1
    "hadoop"
    node1:6379> set s2 hive
    OK
    node1:6379> get s2
    "hive"
    node1:6379> 
    node1:6379> keys *
    1) "s1"
    2) "s2"
    node1:6379> set a1 spark
    OK
    node1:6379> keys *
    1) "a1"
    2) "s1"
    3) "s2"
    node1:6379> keys a*
    1) "a1"
    node1:6379> keys s*
    1) "s1"
    2) "s2"
    node1:6379> del s1
    (integer) 1
    node1:6379> keys *
    1) "a1"
    2) "s2"
    node1:6379> exists s2
    (integer) 1
    node1:6379> exists s1
    (integer) 0
    node1:6379> 
    node1:6379> hset m1 name zhangsan
    (integer) 1
    node1:6379> hset m1 age 18
    (integer) 1
    node1:6379> keys *
    1) "m1"
    2) "a1"
    3) "s2"
    node1:6379> type m1
    hash
    node1:6379> type s2
    string
    node1:6379> 
    node1:6379> expire a1 20
    (integer) 1
    node1:6379> ttl a1
    (integer) 17
    node1:6379> ttl a1
    (integer) 16
    node1:6379> ttl a1
    (integer) 15
    node1:6379> ttl a1
    (integer) 14
    node1:6379> ttl a1
    (integer) 13
    node1:6379> ttl a1
    (integer) 12
    node1:6379> ttl a1
    (integer) 11
    node1:6379> ttl a1
    (integer) 10
    node1:6379> ttl a1
    (integer) 9
    node1:6379> keys *
    1) "m1"
    2) "s2"
    node1:6379> 
    node1:6379> select 1
    OK
    node1:6379[1]> select 10
    OK
    node1:6379[10]> select 0
    OK
    node1:6379> select 1
    OK
    node1:6379[1]> keys *
    (empty list or set)
    node1:6379[1]> set s1 hue
    OK
    node1:6379[1]> keys *
    1) "s1"
    node1:6379[1]> select 0
    OK
    node1:6379> 
    node1:6379> keys *
    1) "m1"
    2) "s2"
    node1:6379> move m1 1
    (integer) 1
    node1:6379> keys *
    1) "s2"
    node1:6379> select 1
    OK
    node1:6379[1]> keys *
    1) "m1"
    2) "s1"
    node1:6379[1]> flushdb
    OK
    node1:6379[1]> keys *
    (empty list or set)
    node1:6379[1]> select 0
    OK
    node1:6379> keys *
    1) "s2"
    node1:6379> flushall
    OK
    node1:6379> keys *
    (empty list or set)
    node1:6379> 
    
  • 小结

    • 掌握Redis常用的通用命令

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12394313.htmls

10-12 12:34