2022/08/07 day04:通用命令

本文详细介绍了Redis中的键(key)操作,包括删除、存在性检查、类型获取等基本操作,以及有效期设置、查询模式和键的重命名。此外,还讨论了如何在多个数据库间切换,避免键冲突,并演示了数据移动和清除操作。重点讲解了如何通过expire系列命令管理键的时效性,以及使用keys命令进行模式匹配查询。
摘要由CSDN通过智能技术生成

目录

  • key通用命令
  • 数据库通用命令

key通用命令

key通用操作

key特征

  • key是一个字符串,通过key获取Redis中保存的数据

【提问】key应该设计哪些操作?

  • 对于key自身状态的相关操作,例如:删除,判定存在,获取类型等
  • 对于key有效性控制相关操作,例如:有效期设定,判断是否有效,有效状态的切换等
  • 对于key的查询操作,例如:按指定策略查询key

key基本操作

  • 删除指定key
    • del key
  • 获取key是否存在
    • exists key
  • 获取key的类型
    • type key

模拟一下

  • 添加5种数据
    • set str str
    • hset hash1 hash1 hash1
    • lpush list1 list1
    • sadd set1 set1
    • zadd zset1 1 zset1
  • 看看类型
    • type zset1 //zset
    • type str //string
    • type list1 //list
  • str是否存在
    • exists str // integer 1
  • 删除zset1
    • del zset1
    • 看看在不在:exists zset1 // integer 0

key扩展操作(失效性控制)

  • 为指定key设置有效期 (设时间的)
    • expire key seconds 秒级
    • pexpire key milliseconds 毫秒级
    • expireat key timetamp 时间戳
    • pexpireat key milliseconds-timestamp
  • 获取key的有效时间(还剩多久?)(看状态的)
    • ttl key 显示秒级
    • pttl key 显示毫秒级
  • 切换key从时效性转换为永久性 (改状态的)
    • persist key

模拟

  • 添加数据

    • set str str
    • lpush list1 list1
    • lpush list2 list2
  • 设置有效期

    • expire str 3
    • 获取str:
      • get str
      • get str //nil 过期了
  • 设置list1的有效期为30秒

    • expire list1 30
    • 看看list1的有效期
      • ttl list1 //21 还剩下21秒
      • ttl list1 //-2 代表访问的key已经不存在了(消失了)
  • 看看既没有失效又没设置有效期是怎样的呢?

    • ttl list2 //-1
      • 如果一个key不存在,那么返回值是-2
      • 如果一个key存在,不设置有效期,那么返回值是-1(永久性也是-1)
      • 如果一个key存在,且设置有效期,那么返回有效期时长
  • 设置有效期list2

    • persist list2 // 0 失败 因为list2没有有效期
      • expire list2 60 60秒有效期
      • persist list2 永久性转换设置
      • ttl list2 //-1 查看剩余多少秒

key扩展操作(查询模式)

  • 查询key
    • keys pattern
      在这里插入图片描述

模拟

  • 查询所有的key
    • keys *
  • 查询it开头的key 匹配任意字
    • keys it*
  • 查询i?hema 匹配一个字
    • keys i?hema
  • 查询有四个字的key
    • keys ???
  • 匹配任意字符
    • keys nam[abcde]

key其他操作

  • 为key改名
    • rename key newkey 慎重使用,千万不要把别人的数据给覆盖了
    • renamenx key newkey
  • 对所有key排序
    • sort 必须给一个集合性的数据list或set 从小到大排序
  • 其他key通用操作
    • help @generic

模拟

  • 设置三个数据

    • set str str
    • set str1 str1
    • set str2 str2
  • 把str 改为 str3

    • rename str str3
  • 把str3改为 str2

    • rename str3 str2
    • 发现居然少了一个,只有str2和str1 str3覆盖了原来的str2
  • 如果不存在就改名,存在就不改名(防止覆盖)

    • 把str1改名为str2
      • renamenx str1 str2 //(integer) 0 此时存在,无法改名
      • 把str2改名为str
        • renamenx str2 str 这样就成功了
  • 构建一个数据

    • lpush aa 123
    • lpush aa 321
    • lpush aa 222
  • 看一下添加后的顺序是怎样的

    • lrange aa 0 -1 // 无序
  • 对key中所有元素进行排序(正序)

    • sort aa 从小到大排序,仅仅是排了个序,不动原来的数据
      • 逆序排序
        • sort aa desc
  • 查看key全部通用命令

    • help @generic tab键,第一个就是deneric

数据库的通用指令

数据库

【疑问】key重复的问题

  • key是由程序员定义的
  • Redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key
  • 数据不区分种类、类别混杂在一起,极易出现重复或冲突

解决方案

  • Redis为每个服务提供有16个数据库,编号0-15
  • 每个数据库之间的数据相互独立
  • 这些数据库公用一块空间
    2022/08/07 day04:通用命令
  • 并没有说那个存储空间大,那个存储空间小

db基本操作

  • 切换数据库

    • select index index是索引,编号0-15
    • 127.0.0.1:6379> select 1
    • OK
    • 127.0.0.1:6379[1]> select 15
    • OK
    • 127.0.0.1:6379[15]> select 0
    • OK
    • 127.0.0.1:6379> 原来我么一直在0号区操作
  • 其他操作

    • quit 退出
    • ping 测试服务器是否连通(服务器断开后,输出没数据;连通输出文本)
    • echo message 输出文本(你输出什么,它输出什么)没什么用
    • redis-cli 服务器重启后,客户端开启Redis
  • 数据移动

    • move key db
      • 在默认的0号数据库中添加数据ithema
        • set name ithema
      • 切换到1号数据库中查看数据
        • select 1
          • 查看name
            • get name //nil 没哟
      • 数据移动到1号数据库
        • 切换到0号数据库操作
          • select 0
          • 移动数据
            • move name 1
              • 查看数据
                • get name //nil
                • 切换到1号数据库
                • select 1
                • 查看数据:get name //itheima
      • 在默认的0号数据库中再次添加数据ithema
        • set name ithema
        • 再次移动数据到1号数据库–>将失败
          • 也即是说,移动数据得保证另一方没有,如果有则会移动失败
  • 数据清除

    • dbsize 看看你现在这个库里有多少个key
    • flushdb 刷掉你现在的数据库中的所有数据key
    • flushall 掀桌子,干掉所有数据库所有数据 我不用一条一条的del了
      • 让人恐怖的命令 要谨慎操作,可能这辈子都用不了,一般做实验用

                                                                              ——此文档为学习笔记!
        
### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装Java:Spark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值