软件测试基础篇——Redis
Redis
Redis数据库的配置与连接
- 解压redis数据库的安装包(建议把解压后的安装包放到磁盘的根目录,方便访问操作)
- 打开【命令行窗口】:win+R
- 在命令行窗口,进入到redis安装目录中
格式一:cd /d redis目录完整路径 跨磁盘切换目录
例:cd /d d:\redis
格式二:
①切换磁盘:磁盘符:
例:切换D盘 D:或者d:
②切换目录:cd 目录名字
例:cd redis
- 启动redis数据库的服务
命令:redis-server.exe redis.windows.conf
mysql端口号:3306,redis端口号:6379
- 连接redis数据库
重新打开一个命令行窗口做连接:进入redis安装目录
命令:redis-cli.exe
- 测试:输入ping命令,得到PONG结果,证明redis数据库的配置与连接是OK的、
redis数据库配置与安装
- 启动redis数据库的服务:redis-server.exe redis.windows.conf
- 连接redis数据库:redis-cli.exe
1、Redis数据库概述
- NOSQL:不仅仅是SQL,泛指非关系型数据库,是对关系型数据库的一个有力补充,数据的组织方式,大部分都是以【键值对key-value】的形式来存储和管理的,
例:redis:键值对:键名 值——>name “tom” age 18
MongoDB:键值对:键名:值 name:”tom” age:18
关系型数据库:RDBMS
-
redis:远程字典服务,是==开源免费(开放源代码,配置文件中的参数可以根据实际情况做出修改),基于内存(数据直接存储在内存),跨平台(可以在多个操作系统使用)==的非关系型Key-Value数据库
-
redis特征:①数据直接加载到内存中存储和管理数据;②支持到的数据类型,以及每一种类型提供的操作命令是较多的;③数据的处理(读写)速度是较快的;④持久化功能:利用生成的持久化文件,可以避免因异常操作引发数据丢失问题,实现数据的还原恢复操作;⑤redis数据库可以设置键值对数据的有效活动时间,一旦过了该时间,就会被系统直接删除;⑥支持事务操作:事务:指的是在当前数据库中一次性并行处理的操作,要么全部执行,要么全部取消——>原子性
2、Redis和MySQL对比
- 类型:redis:非关系型数据库 mysql:关系型数据库
- 数据存储和管理方式(组织方式):redis:键值对 mysql:表
- 数据的存放位置:redis:基于内存 mysql:放在磁盘
- MySQL偏向于【存数据】,redis偏向于【读取数据】
3、Redis支持的数据类型以及操作命令
- redis自带16个数据库,库编号:0-15,默认是在0号库(第一个库)
切换数据库:select 库编号
备注:redis命令学习建议:==redis命令作用;redis命令的语法格式;==redis命令和参数结合作用
- redis数据库的增删改查操作
①set 键名 值 创建/插入键值对数据
②set 键名 新值 修改键中的值
③get 键名 获取键中的值
④del 键名 删除键中的值
-
redis数据库关于键Keys的操作命令
-
exists 键名 判断该键是否存在
-
type 键名 查看该键的数据类型 string:字符串
备注:除了列表,set集合,hash集合,有序集合,其它的数据默认归纳为字符串类型
-
keys 字符模板 查找和该模板匹配的键名 ***** 任意,所有
-
keys * 查找所有的键名
-
randomkey 随机返回一个存在的键
-
rename 旧键名 新键名 对键进行重命名操作
-
dbsize 统计键的总个数
-
expire 键名 时间s 设置键的有效活动时间
-
ttl 键名 获取键的有效活动时间
-
move 键名 库编号 将当前库中的键移动到指定的库
-
flushdb 删除当前库中的所有键
-
flushall 删除所有库中的所有键
-
set 键名 值 ex 时间s 在创建键值对数据的同时,设置有效活动时间
-
exit/quit:退出客户端(断开数据库连接)
-
info 显示redis数据库的属性信息
-
-
Redis数据类型-字符串类型:string
-
string是redis基本的、默认的数据类型
-
提供的操作命令:
- 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 键名 统计该键中字符串长度
-
- redis特征
- redis操作命令:作用,格式
-
Redis数据类型-List(列表,链表)
-
概述:列表类型的键,可以存储多个值——>用来插入多个字符串类型的数据值,列表键中是可以有重复的值
-
List列表提供的操作命令:
-
lpush 键名 值1 值2 值3… 创建或从列表的头部插入数据(先写的数据在下边)
-
rpush 键名 值1 值2 值3… 创建或从列表的尾部插入数据(先写的数据在上边)
-
lrange 键名 开始位置下标 结束位置下标 查看列表键中范围之内的数据值
-
llen 键名 统计列表键中值的总个数
-
lindex 键名 位置下标 根据下标获取对应位置上的值
-
lset 键名 位置下标 新值 根据下标修改指定位置上的值
-
lrem 键名 数量 值 从列表键中删除指定数量的相同值
-
lpop 键名 返回并删除键中头部元素值
-
rpop 键名 返回并删除键中尾部元素值
-
linsert 键名 before 指定元素值 新值 在指定元素值的前面插入新的值
-
linsert 键名 after 指定元素值 新值 在指定元素值的后面插入新的值
-
ltrim 键名 开始位置的下标 结束位置的下标
备注:键中只保留截取后的数据
-
-
-
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 键名 #随机返回键中的一个值
- Redis数据类型-Hsah集合:存放【键值对】数据集合,每一个hash键中,存储的值都是【键值对】,hash:哈希
- hash类型提供的操作命令:
- hset 键名 字段名(key) 字段值(value) #生成hash类型集合的键,并存入值
- hmset 键名 字段名1 字段值1 字段名2 字段值2 字段名3 字段值3… #生成hash类型的键,并存入多组值
- hget 键名 字段名 #获取键中某个字段的值
- hmget 键名 字段名1 字段名2 字段名3… #获取多个字段值
- hgetall 键名 #获取键中所有的字段以及字段值
- hincrby 键名 字段名 增加值 #将键中指定字段中存储的值进行加法操作
- hexists 键名 字段名 #检测该字段是否存在于键中
- hdel 键名 字段名 #删除该键中的字段
- hlen 键名 #统计该键中字段的总个数
- hkeys 键名 #获取键中所有的字段名
- hvals 键名 #获取键中所有的字段值
- redis数据类型-有序集合:zset,用来存储多个字符串类型的数据的集合,通过每一个值关联一个分数,然后利用分数达到排序的效果(升序:从小到大)唯一
- 有序集合提供的操作命令:
- zadd 键名 分数1 值1 分数2 值2 分数3 值3… #生成有序集合类型的键并存入值
- zrange 键名 开始位置下标 结束位置下标 #查看键中的所有值
- zrevrange 键名 开始位置下标 结束位置下标 #降序查看键中的数据
- zcard 键名 #统计该键中值的总个数
- zcount 键名 最低分 最高分 #根据分数区间统计值的数量
- zincrby 键名 增加的分数值 值 #给该值进行分数的增加
- zrank 键名 值 #返回该值对应的下标(下标算法:把最小的值看成是第一个元素)
- zrevrank 键名 值 #返回该值对应的下标(下标算法:把最大的值看成是第一个元素)
- zscore 键名 值 查看该值对应的分数
- zrem 键名 值1 值2… #删除键中的数据
- zscan 键名 游标值(0) 查看键中所有的值以及关联的分数
- zremrangebyscore 键名 最低分 最高分 #删除分数区间内的数据
4、事务的操作
- 概述::事务指的是一次可以执行多个操作命令——>把对应的操作命令都放在事务中,一旦执行事务,就会把事务中所包含的所有操作命令全部执行。
备注:在没有事务介入前,每一个命令都是一个一个执行的
- 事务的创建流程:
事务从开始到执行会经历三个阶段:
开始事务—–>multi
命令入队——>各种操作命令
执行事务——>exec
备注:redis数据库“事务”,并没有真正做到原子性——>“伪事务”(低版本的)
5、Redis数据库的备份与恢复
- 数据库备份操作:
save 备份完成后,生成一个dump.rdb文件,放在redis的安装目录
备注:有时候备份完成后,找不到或不清楚该文件存在的路径(redis的安装目录):config get dir
- 数据库还原/恢复操作:
只需要把dump.rdb文件,放入到redis目录下,重启redis服务即可
相关文章:
软件测试基础篇——Redis
Redis Redis数据库的配置与连接 解压redis数据库的安装包(建议把解压后的安装包放到磁盘的根目录,方便访问操作)打开【命令行窗口】:winR在命令行窗口,进入到redis安装目录中 格式一:cd /d redis目录…...

大数据扫盲(1): 数据仓库与ETL的关系及ETL工具推荐
在数字化时代,数据成为了企业决策的关键支持。然而,随着数据不断增长,有效地管理和利用这些数据变得至关重要。数据仓库和ETL工具作为数据管理和分析的核心,将帮助企业从庞杂的数据中提取有价值信息。 一、ETL是什么? …...

spring的aop动态代理对象注入时机
bean生命周期: bean实例化populateBean填充属性invokeAwareMethods调用aware方法postProcessBeforeInitialization后置处理器before方法initializeBean初始化beanpostProcessAfterAfterInitialization后置处理器after方法 代理对象注入有两种情况:提前和…...

idea集成svn
一、注意 安装svn客户端的时候一定要勾选,否则在idea上集成svn的时候会找不到 svn.exe 而报错。 如果当初安装时忘记勾选,重新运行安装包,选择modify,勾选command line client tools项中的内容。 二、配置idea集成svn 三、检出(c…...

RedisDesktopManage
RDM 简介下载安装 简介 RedisDesktopManager(RDM)是一个开源的跨平台图形界面工具,用于管理和操作 Redis 数据库。它提供了一个用户友好的界面,使用户能够轻松地连接、浏览、查询和修改 Redis 数据,而无需使用命令行界…...

《Vue.js实战》——基础篇(1)
目录 资源:🌟 一、初识Vue.js👋 Vue.js是什么?🙇 MVVM模式 ✍ Vue.js有什么不同 ☔ 如何使用Vue.js? ☁ 传统的前端开发模式 ☀ Vue.js的开发模式 🗻 二、数据绑定和第一个Vue应用 Ὗ…...

R语言 列表中嵌套列名一致的多个数据框如何整合为一个数据框
在批量建模后容易得到list,list中的每个元素都是单个的tibble 或者 dataframe,如何将这些数据整合为一张表呢? 载入R包 library(broom) library(tidyverse) 模拟数据 models <- txhousing %>% group_by(city) %>% do(modlm(lo…...

PyQt5利用QTextEdit控件输入多行文本
1、总代码 #!/usr/bin/env python # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication,QWidget from PyQt5 import QtCore, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(320, 240)s…...

【数据结构】二叉树常见题目
文章目录 前言二叉树概念满二叉树完全二叉树二叉搜索树(二叉排序树)平衡⼆叉搜索树存储⽅式 二叉树OJ二叉树创建字符串二叉树的分层遍历1二叉树的分层遍历2给定一个二叉树, 找到该树中两个指定节点的最近公共祖先二叉树搜索树转换成排序双向链表二叉树展开为链表根据一棵树的前…...

树莓派使用 ENC28J60
前言 一些老的、Mini 的 ARM 开发板上没有预留网口,这样在调试升级内核或应用程序时很不方便。纵使有串口下载工具,但其速度也是慢地捉急。这种情况下,使用其它接口来扩展出一个网口无疑是一个比较好的方法。 ENC28J60 就是一个使用 SPI 接口…...
跟我学C++中级篇——模板友元的应用
一、友元 友元在以前分析过,而且一般编程是不推荐使用友元的,原因是友元破坏了类的封装性。但凡事总有例外,在某些情况下,用友元还是比较方便的,那么该用还得用,不能因噎废食。普通的友元,各种…...

软件测试基础篇——MySQL
MySQL 1、数据库技术概述 数据库database:存放和管理各种数据的仓库,操作的对象主要是【数据data】,科学的组织和存储数据,高效的获取和处理数据SQL:结构化查询语言,专为**关系型数据库而建立的操作语言&…...

FreeRTOS(二值信号量)
资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量的定义与应用 1、二值信号量的定义 2、二值信号量的应用 三、二值信号量的运作机制 1、FreeRTOS任务间二值…...
leetcode面试题:动物收容所(考查对队列的理解和运用)
题目: 有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或者可以挑选猫或狗(同时…...

【Linux命令行与Shell脚本编程】第十八章 文本处理与编辑器基础
Linux命令行与Shell脚本编程 第十八章 文本处理与编辑器基础 文章目录 Linux命令行与Shell脚本编程第十八章 文本处理与编辑器基础 文本处理与编辑器基础8.1.文本处理8.1.1.sed编辑器8.1.1.1.在命令行中定义编辑器命令8.1.1.2.在命令行中使用多个编辑器命令8.1.1.3.从文件中读…...

2023牛客暑期多校训练营7
Beautiful Sequence 贪心,二进制,构造 Cyperation 模拟 ,数学 We Love Strings 分块,二进制枚举,二进制容斥dp Writing Books 签到 根据相邻两个异或值B,因为前小于等于后,故从高到低遍历B的每一…...

centos7升级glibc2.28
1 概述 centos7自带的glibc对于某些软件是太旧的,决定将glibc升级至2.28。 2 安装过程 2.1 下载glibc源码 mkdir -p /opt/third-party && cd /opt/third-party wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar -xf glibc-2.28.tar.gz cd glibc…...

腾讯云香港服务器租用_2核2G20M_2核4G30M
腾讯云香港服务器租用费用表,目前中国香港地域轻量应用服务器可选配置2核2G20M、2核2G30M、2核4G30M,操作系统可选Windows和Linux,不只是香港云服务器,新加坡、硅谷、法兰克福和东京服务器均有活动,腾讯云服务器网分享…...

十三、ESP32PS2摇杆(ADC)
1. 运行效果 在上下左右操作PS2摇杆的时候,会检测到数据 2. 滑动电阻...

网络安全的相关知识点
网络安全威胁类型: 1.窃听:广播式网络系统。 2.假冒 3.重放:重复一份报文或者报文的一部分,以便产生一个被授权的效果。 4.流量分析 5.数据完整性破坏 6.拒绝服务 7.资源的非授权使用 8.陷门和特洛伊木马:木马病毒有客…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...