软件测试基础篇——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服务即可

相关推荐
yanglamei19624 分钟前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
工作中的程序员27 分钟前
ES 索引或索引模板
大数据·数据库·elasticsearch
严格格30 分钟前
三范式,面试重点
数据库·面试·职场和发展
微刻时光1 小时前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
单字叶1 小时前
MySQL数据库
数据库·mysql
mqiqe1 小时前
PostgreSQL 基础操作
数据库·postgresql·oracle
just-julie1 小时前
MySQL面试题——第一篇
数据库·mysql
趋势大仙1 小时前
SQLiteDatabase insert or replace数据不生效
android·数据库
丁总学Java1 小时前
如何使用 maxwell 同步到 redis?
数据库·redis·缓存
蘑菇蘑菇不会开花~1 小时前
分布式Redis(14)哈希槽
redis·分布式·哈希算法