软件测试基础篇——Redis

Redis

Redis数据库的配置与连接

  1. 解压redis数据库的安装包(建议把解压后的安装包放到磁盘的根目录,方便访问操作)
  2. 打开【命令行窗口】:win+R
  3. 在命令行窗口,进入到redis安装目录中

​ 格式一:cd /d redis目录完整路径 跨磁盘切换目录

​ 例:cd /d d:\redis

​ 格式二:

​ ①切换磁盘:磁盘符:

​ 例:切换D盘 D:或者d:

​ ②切换目录:cd 目录名字

​ 例:cd redis

  1. 启动redis数据库的服务

​ 命令:redis-server.exe redis.windows.conf

​ mysql端口号:3306,redis端口号:6379

  1. 连接redis数据库

​ 重新打开一个命令行窗口做连接:进入redis安装目录

​ 命令:redis-cli.exe

  1. 测试:输入ping命令,得到PONG结果,证明redis数据库的配置与连接是OK的、

回顾

redis数据库配置与安装

  1. 启动redis数据库的服务:redis-server.exe redis.windows.conf
  2. 连接redis数据库:redis-cli.exe

1、Redis数据库概述

  1. NOSQL:不仅仅是SQL,泛指非关系型数据库,是对关系型数据库的一个有力补充,数据的组织方式,大部分都是以【键值对key-value】的形式来存储和管理的,

​ 例:redis:键值对:键名 值——>name “tom” age 18

​ MongoDB:键值对:键名:值 name:”tom” age:18

​ 关系型数据库:RDBMS

  1. redis:远程字典服务,是==开源免费(开放源代码,配置文件中的参数可以根据实际情况做出修改),基于内存(数据直接存储在内存),跨平台(可以在多个操作系统使用)==的非关系型Key-Value数据库

  2. redis特征:①数据直接加载到内存中存储和管理数据;②支持到的数据类型,以及每一种类型提供的操作命令是较多的;③数据的处理(读写)速度是较快的;④持久化功能:利用生成的持久化文件,可以避免因异常操作引发数据丢失问题,实现数据的还原恢复操作;⑤redis数据库可以设置键值对数据的有效活动时间,一旦过了该时间,就会被系统直接删除;⑥支持事务操作:事务:指的是在当前数据库中一次性并行处理的操作要么全部执行,要么全部取消——>原子性

2、Redis和MySQL对比

  1. 类型:redis:非关系型数据库 mysql:关系型数据库
  2. 数据存储和管理方式(组织方式):redis:键值对 mysql:表
  3. 数据的存放位置:redis:基于内存 mysql:放在磁盘
  4. MySQL偏向于【存数据】,redis偏向于【读取数据】

3、Redis支持的数据类型以及操作命令

  1. redis自带16个数据库,库编号:0-15,默认是在0号库(第一个库)

切换数据库:select 库编号

备注:redis命令学习建议:==redis命令作用;redis命令的语法格式;==redis命令和参数结合作用

  1. redis数据库的增删改查操作

​ ①set 键名 值 创建/插入键值对数据

​ ②set 键名 新值 修改键中的值

​ ③get 键名 获取键中的值

​ ④del 键名 删除键中的值

  1. redis数据库关于键Keys的操作命令

    1. exists 键名 判断该键是否存在

    2. type 键名 查看该键的数据类型 string:字符串

      备注:除了列表,set集合,hash集合,有序集合,其它的数据默认归纳为字符串类型

    3. keys 字符模板 查找和该模板匹配的键名 ***** 任意,所有

    4. keys * 查找所有的键名

    5. randomkey 随机返回一个存在的键

    6. rename 旧键名 新键名 对键进行重命名操作

    7. dbsize 统计键的总个数

    8. expire 键名 时间s 设置键的有效活动时间

    9. ttl 键名 获取键的有效活动时间

    10. move 键名 库编号 将当前库中的键移动到指定的库

    11. flushdb 删除当前库中的所有键

    12. flushall 删除所有库中的所有键

    13. set 键名 值 ex 时间s 在创建键值对数据的同时,设置有效活动时间

    14. exit/quit:退出客户端(断开数据库连接)

    15. info 显示redis数据库的属性信息

  2. Redis数据类型-字符串类型:string

    1. string是redis基本的、默认的数据类型

    2. 提供的操作命令:

      • set/get:创建一组键值对数据/获取一个键的值
      • mset 键名1 值1 键名2 值2 键名3 值3…. 向库中插入多组键值对数据
      • mget 键名1 键名2 键名3… 获取多个键的值
      • getset 键名 新值 先获取键中原始的值,再把新值赋值给该键
      • setnx 键名 值 添加键值对数据,如果该键存在,则什么都不做
      • msetnx 键名1 值1 键名2 值2… 添加多组键值对数据(有一个存在也会影响其它的插入),
      • setex 键名 时间s 新值 修改键中的值,并设置有效的活动时间
      • incr 键名 让键中的值自动加1
      • incrby 键名 自定义数字 指定数字的加法操作
      • decr 键名 让键中的值自动减1
      • decrby 键名 自定义数字 指定数字的减法操作
      • append 键名 新值 将新值拼接在键中原始值的后方(拼凑在一起)
      • substr 键名 开始位置的下标 结束位置下标 对键中字符串数据进行截取操作
      • setrange 键名 位置下标 新值 得到一个新的字符串(从指定位置开始,拿上新值,替换原始字符串数据,替换范围取决于新字符串长度)
      • getrange 键名 开始位置下标 结束位置下标 对键中的字符串进行截取操作 <——>参考substr
      • strlen 键名 统计该键中字符串长度

回顾
  1. redis特征
  2. redis操作命令:作用,格式

  1. Redis数据类型-List(列表,链表)

    1. 概述:列表类型的键,可以存储多个值——>用来插入多个字符串类型的数据值,列表键中是可以有重复的值

    2. List列表提供的操作命令:

      • lpush 键名 值1 值2 值3… 创建或从列表的头部插入数据(先写的数据在下边)

      • rpush 键名 值1 值2 值3… 创建或从列表的尾部插入数据(先写的数据在上边)

      • lrange 键名 开始位置下标 结束位置下标 查看列表键中范围之内的数据值

      • llen 键名 统计列表键中值的总个数

      • lindex 键名 位置下标 根据下标获取对应位置上的值

      • lset 键名 位置下标 新值 根据下标修改指定位置上的值

      • lrem 键名 数量 值 从列表键中删除指定数量的相同值

      • lpop 键名 返回并删除键中头部元素值

      • rpop 键名 返回并删除键中尾部元素值

      • linsert 键名 before 指定元素值 新值 在指定元素值的前面插入新的值

      • linsert 键名 after 指定元素值 新值 在指定元素值的后面插入新的值

      • ltrim 键名 开始位置的下标 结束位置的下标

        备注:键中只保留截取后的数据

  2. Redis数据类型-Set集合:存放多个字符串类型的数据值,唯一,无序

​ set集合类型提供的操作命令:

①sadd 键名 值1 值2 值3… #创建/向set集合键中插入数据

②smembers 键名 #返回键中所有的值

③srem 键名 值 #从该键中删除指定的数据值

④spop 键名 #返回并删除键中的一个值

⑤smove 键名1 键名2 值 #将键名1的值移动到键名2

⑥scard 键名 #统计键中值的总个数

⑦sismember 键名 值 #检测该值是否存在于集合中

⑧sinter 键名1 键名2 键名3… 求#交集,把这些集合键中共有的数据显示出来

⑨sinterstore 新的键名 键名1 键名2 键名3… #求交集保存在新的集合键中

⑩sunion 键名1 键名2 键名3… #求并集,这些集合中的数据融合在一起显示:相同的保留一个,不同的直接融合

⑪sunionstore 新的键名 键名1 键名2 键名3… #求并集,保存在新的键中

⑫sdiff 键名1 键名2… #求差集,键名1中值减去键名2中共有的,把剩下独有的数据显示

⑬sdiffstore 新的键名 键名1 键名2… #求差集,并保存在新的键中

⑭srandmember 键名 #随机返回键中的一个值

  1. Redis数据类型-Hsah集合:存放【键值对】数据集合,每一个hash键中,存储的值都是【键值对】,hash:哈希
  • hash类型提供的操作命令:
    1. hset 键名 字段名(key) 字段值(value) #生成hash类型集合的键,并存入值
    2. hmset 键名 字段名1 字段值1 字段名2 字段值2 字段名3 字段值3… #生成hash类型的键,并存入多组值
    3. hget 键名 字段名 #获取键中某个字段的值
    4. hmget 键名 字段名1 字段名2 字段名3… #获取多个字段值
    5. hgetall 键名 #获取键中所有的字段以及字段值
    6. hincrby 键名 字段名 增加值 #将键中指定字段中存储的值进行加法操作
    7. hexists 键名 字段名 #检测该字段是否存在于键中
    8. hdel 键名 字段名 #删除该键中的字段
    9. hlen 键名 #统计该键中字段的总个数
    10. hkeys 键名 #获取键中所有的字段名
    11. hvals 键名 #获取键中所有的字段值

  1. redis数据类型-有序集合:zset,用来存储多个字符串类型的数据的集合,通过每一个值关联一个分数,然后利用分数达到排序的效果(升序:从小到大)唯一
  • 有序集合提供的操作命令:
    • zadd 键名 分数1 值1 分数2 值2 分数3 值3… #生成有序集合类型的键并存入值
    • zrange 键名 开始位置下标 结束位置下标 #查看键中的所有值
    • zrevrange 键名 开始位置下标 结束位置下标 #降序查看键中的数据
    • zcard 键名 #统计该键中值的总个数
    • zcount 键名 最低分 最高分 #根据分数区间统计值的数量
    • zincrby 键名 增加的分数值 值 #给该值进行分数的增加
    • zrank 键名 值 #返回该值对应的下标(下标算法:把最小的值看成是第一个元素)
    • zrevrank 键名 值 #返回该值对应的下标(下标算法:把最大的值看成是第一个元素)
    • zscore 键名 值 查看该值对应的分数
    • zrem 键名 值1 值2… #删除键中的数据
    • zscan 键名 游标值(0) 查看键中所有的值以及关联的分数
    • zremrangebyscore 键名 最低分 最高分 #删除分数区间内的数据

4、事务的操作

  1. 概述::事务指的是一次可以执行多个操作命令——>把对应的操作命令都放在事务中,一旦执行事务,就会把事务中所包含的所有操作命令全部执行。

备注:在没有事务介入前,每一个命令都是一个一个执行的

  1. 事务的创建流程:

事务从开始到执行会经历三个阶段:

开始事务—–>multi

命令入队——>各种操作命令

执行事务——>exec

备注:redis数据库“事务”,并没有真正做到原子性——>“伪事务”(低版本的)

5、Redis数据库的备份与恢复

  1. 数据库备份操作:

save 备份完成后,生成一个dump.rdb文件,放在redis的安装目录

​ 备注:有时候备份完成后,找不到或不清楚该文件存在的路径(redis的安装目录):config get dir

  1. 数据库还原/恢复操作:

只需要把dump.rdb文件,放入到redis目录下,重启redis服务即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装Zookeeper

1、Zookeeper简介 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域…

自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的类型Ⅲ]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 对话令牌缓冲存储器ConversationTokenBufferMemory ConversationTokenBufferMemory在内存中保留了最近的一些对话交互&#xff0c;并使用标记长度来确定何时刷新交互&#xff0c;而不是交互数量。 from langchain.me…

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

环保行业如何开发废品回收微信小程序

废品回收是近年来受到越来越多人关注的环保行动。为了推动废品回收的普及和方便&#xff0c;我们可以利用微信小程序进行制作&#xff0c;方便人们随时随地参与废品回收。 首先&#xff0c;我们需要注册并登录乔拓云账号&#xff0c;并进入后台。乔拓云是一个提供微信小程序制作…

数据结构(一):顺序表详解

在正式介绍顺序表之前&#xff0c;我们有必要先了解一个名词&#xff1a;线性表。 线性表&#xff1a; 线性表是&#xff0c;具有n个相同特性的数据元素的有限序列。常见的线性表&#xff1a;顺序表、链表、栈、队列、数组、字符串... 线性表在逻辑上是线性结构&#xff0c;但…

【云原生】Pod详讲

目录 一、Pod基础概念1.1//在Kubrenetes集群中Pod有如下两种使用方式&#xff1a;1.2pause容器使得Pod中的所有容器可以共享两种资源&#xff1a;网络和存储。1.3kubernetes中的pause容器主要为每个容器提供以下功能&#xff1a;1.4Kubernetes设计这样的Pod概念和特殊组成结构有…

Django中级指南:理解并实现Django的模型和数据库迁移

Django 是一个极其强大的 Python Web 框架&#xff0c;它提供了许多工具和特性&#xff0c;能够帮助我们更快速、更便捷地构建 Web 应用。在本文中&#xff0c;我们将会关注 Django 中的模型&#xff08;Models&#xff09;和数据库迁移&#xff08;Database Migrations&#x…

上传代码到GitCode

Git 全局设置 git config --global user.name "AnyaPapa" git config --global user.email "fangtaihongqq.com" 添加SSH密钥 Mac终端输入命令 cd existing_folder git init git remote add origin gitgitcode.net:Java_1710/test.git git add . git co…

2023国赛数学建模A题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

Mac电脑如何把照片以文件格式导出?

在Mac电脑上&#xff0c;我们经常会拍摄、保存和编辑各种照片。有时候&#xff0c;我们可能需要将这些照片以文件形式导出&#xff0c;以便与他人共享、打印或备份。无论您是要将照片发送给朋友、上传到社交媒体&#xff0c;还是保存到外部存储设备&#xff0c;导出照片为文件是…

我的Python教程:使用Pyecharts画柱状图

Pyecharts是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个基于 JavaScript 的数据可视化库&#xff0c;提供了丰富的图表类型和交互功能。通过 Pyecharts&#xff0c;你可以使用 Python 代码生成各种类型的 Echarts 图表&#xff0c;例如折线图、柱状图、饼图、散点图…

java不支持解压rar5的解决办法--引用本地7zip.exe

由于rar5算法未开源&#xff0c;没有合适的JAVA依赖能够解决解压rar5。在运行中报错&#xff1a; javacom.github.junrar.exception.RarException: badRarArchive 通过引用本地7zip.exe&#xff0c;命令行执行解决&#xff1a; private static void unZipRar5File(String fileP…

探索可视化应用的崭新前景

在当今数据驱动的世界中&#xff0c;可视化应用成为了一种强大的工具&#xff0c;能够将复杂的数据转化为易于理解和分析的图形形式。随着技术的不断发展和创新&#xff0c;可视化应用正迎来崭新的前景。本文将介绍可视化应用的定义、重要性以及当前的发展趋势&#xff0c;并探…

Controller是单例还是多例?

Controller是单例还是多例&#xff1f; controller默认是单例的&#xff0c;不要使用非静态的成员变量&#xff0c;否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。 我们下面来简单的验证下&#xff1a; package com.riemann.springbootdemo.controller;import org…

docker配置文件

/etc/docker/daemon.json 文件作用 /etc/docker/daemon.json 文件是 Docker 配置文件&#xff0c;用于配置 Docker 守护进程的行为和参数。Docker 守护进程是负责管理和运行 Docker 容器的后台进程&#xff0c;通过修改 daemon.json 文件&#xff0c;可以对 Docker 守护进程进…

不做Linux就没前途吗?

答案当然是——并不会 我晚上回来的时候跟一个今年的毕业生聊天&#xff0c;他入职了一家公司&#xff0c;但是从事的不是Linux相关的工作。 我这里想说的是&#xff0c;做Linux可以赚钱&#xff0c;Linux现在是全世界最牛逼的开源项目一点都不为过&#xff0c;但是Linux也不是…

NLP(六十五)LangChain中的重连(retry)机制

关于LangChain入门&#xff0c;读者可参考文章NLP&#xff08;五十六&#xff09;LangChain入门 。   本文将会介绍LangChain中的重连机制&#xff0c;并尝试给出定制化重连方案。   本文以LangChain中的对话功能&#xff08;ChatOpenAI&#xff09;为例。 LangChain中的重…

【Mysql】数据库基础与基本操作

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

Centos 7 出现 write error (disk full?)

问题 mysql 导入任务时&#xff0c;由于导出的 sql 文件是在很大 &#xff08;30G&#xff09;&#xff0c;利用 SQLDumpSpliter 切割工具 切成几个 1G 大小的 sql 文件 结果在导入大半天&#xff0c;突然报错 &#xff08;另一个服务器上更惨&#xff0c;都导入两天快完成的…