前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于内存的分布式NoSQL数据库Redis(二)数据结构与通用命令

基于内存的分布式NoSQL数据库Redis(二)数据结构与通用命令

作者头像
Maynor
发布2023-10-13 11:50:50
1300
发布2023-10-13 11:50:50
举报

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

  • 目标:掌握Redis的数据结构及数据类型
  • 路径
    • step1:数据结构
    • step2:数据类型
  • 实施
    • 数据结构:整个Reids中**所有数据以KV结构形式**存在
      • K:作为唯一标识符,唯一标识一条数据,固定为String类型,写入时指定KV,读取时,根据K读取V
      • V:真正存储的数据,可以有多种类型
        • String、Hash、List、Set、Zset、BitMap、HypeLogLog
      • 理解Redis:类似于Java中的一个Map集合,可以存储多个KV,根据K获取V
    • 数据类型
      • 每一种类型的应用场景和命令都是不一样的

      Key:StringValue类型Value值应用场景pv_20200101String10000一般用于存储单个数据指标的结果person001Hashname:laoer age : 20 sex female用于存储整个对象所有属性值uvList{100,200,300,100,600}有序允许重复的集合,每天获取最后一个值uv_20200101Set{userid1,userid2,userid3,userid4……}无序且不重复的集合,直接通过长度得到UVtop10_productZSet【score,element】{10000-牙膏,9999-玩具,9998-电视……}有序不可重复的集合,统计TopNuser_filterBitMap{0101010101010000000011010}将一个字符串构建位,通过0和1来标记每一位product_20200101HypeLogLog{productid1,id2……}类似于Set集合,底层实现原理不一样,数据量大的情况下,性能会更好,结果可能存在一定的误差

      • 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常用的通用命令

实施

  • keys:列举当前数据库中所有Key
  • 语法:keys 通配符
  • del key:删除某个KV
  • exists key :判断某个Key是否存在
  • type key:判断这个K对应的V的类型的
  • expire K 过期时间:设置某个K的过期时间,一旦到达过期时间,这个K会被自动删除
  • ttl K:查看某个K剩余的存活时间
  • select N:切换数据库的
  • Redis默认由16个数据:db0 ~ db15,个数可以通过配置文件修改,名称不能改
    • Redis是一层数据存储结构:所有KV直接存储在数据库中
  • 默认进入db0
  • move key N:将某个Key移动到某个数据库中
  • flushdb:清空当前数据库的所有Key
  • flushall:清空所有数据库的所有Key
代码语言:javascript
复制
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常用的通用命令
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 知识点05:Redis的数据结构及数据类型
  • 知识点06:Redis的通用命令
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档