Redis_00_初识Redis

Redis

Redis(REmote Dicitonary Server):基于键值对的NoSQL数据库(Key-Value)

1)默认占用6379端口;

2)Redis的所有数据均保存在内存;

3)内存中数据可通过快照或日志方式存储到硬盘;

4)基于C语言开发(无需系统库),且为单线程架构;


单线程架构

Redis高性能:单线程架构、I/O多路复用

1)单线程避免线程切换和竞态产生的消耗;

2)Redis通过epoll事件模型实现I/O多路复用;

3)Redis将epoll中的连接、读写和关闭均转换为事件处理;


如:Redis的I/O多路复用
在这里插入图片描述


客户端命令执行流程:发送命令、执行命令、返回结果

1)由于Redis是单线程的,所有接收到的命令都会先存入到执行队列中;

2)Redis线程会按照执行队列顺序依次执行各个命令(不存在同时);

3)命令执行的顺序根据该命令到达服务端时间判断;

//每个命令的执行时间是受限制的


如:Redis服务端接收客户端命令后的执行流程
在这里插入图片描述


Redis安装

Redis安装方式分为:通过系统管理软件安装、源码编译安装

1)通过系统管理软件安装的版本较为落后(不建议);

2)源码编译安装可保证为最新版(但需已安装gcc编译器);


源码安装Redis流程:

(1)获取源码(也可从官网下载源码后,上传至服务器)

mkdir  -p  /opt/redis
cd  /opt/redis
wget  源码网站下载路径
tar  zxmf  压缩包名

(2)安装(生成特定版本的软连接目录,便于后续对Redis版本升级)

ln  -s  解压目录名  redis
cd  redis
make  &&  make  install

如:从官网下载6.2.6版本的Redis,并在/opt/redis目录下解压安装

1)获取源码;
在这里插入图片描述
2)安装并验证
在这里插入图片描述
//安装完成后可通过“redis-cli -v”输出版本号以验证是否安装成功


若安装时报错,删除解压目录并安装以下两个软件后再进行安装:

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils


Redis Shell

安装完成后/usr/local/bin有以下6个以redis开头的可执行文件(Redis Shell)

可执行文件作用
redis-server启动服务端
redis-cli命令行客户端
redis-benchmark基准性能测试
redis-check-aofAOF持久化文件检测和修复
redis-check-dumpRDB持久化文件检测和修复
redis-sentinel启动哨兵

如:列出Redis安装后/usr/local/bin目录下以redis开头的可执行文件
在这里插入图片描述


redis-cli

redis-cli命令:提供Redis的命令行客户端

1)格式:redis-cli 选项

(1)交互式连接选项:

选项含义
-h指定服务端Redis的IP
-p指定服务端Redis的端口
-c连接Redis Cluster时防止moved和ask异常
-a指定连接密码
–slave将当前客户端模拟成Redis节点的从节点连接 (可获取Redis节点更新操作)

(2)命令式连接选项:

选项含义
-r命令式连接时,命令的执行次数
-i命令式连接时,相隔N秒执行一次命令 (必须配合-r选项,且N可为浮点数)
-x命令式连接时,将标准输入作为最后一个参数
–scan渐进式遍历键 (等同于SCAN命令)
–pipe将命令封装成Pipeline格式再发出
–raw以可读性较高的格式返回数据
–no-raw以二进制格式返回数据

Pipeline:将Redis客户端的多个命令打包后统一发送至服务端

1)可将原本N个命令的N个RTT时间缩减为1个RTT时间;

2)返回结果和发送命令的顺序保持一致(两者均为集合格式);

3)Pipeline是非原子性的,且客户端和服务端需同时支持;

//在Pipeline中指定过多命令时存在Redis阻塞风险(可分为多个小Pipeline)


(3)获取服务端Redis选项:

选项含义
–stat返回服务端Redis相关信息
–rdb请求服务端Redis生成RDB持久化文件 存储至当前目录
–bigkeys返回占用内存较大的键 (通过SCAN命令遍历得出)
–latency返回客户端和服务端Redis的网络延迟
–lantency-history动态刷新显示客户端和服务端Redis的网络延迟

redis-server

redis-server命令:启动服务端Redis

1)格式:redis-server 选项

(1)常用选项:

选项含义
–参数 值以指定参数配置启动
文件路径以指定文件作为配置文件启动
–test-memory N测试是否可分配N M的内存

redis-benchmark

redis-benchmark命令:提供服务端Redis的基准性能测试

1)格式:redis-benchmark 选项

(1)常用选项:

选项含义
-c测试服务端Redis的并发连接数量 (默认值50)
-n测试服务端Redis可接收命令执行请求的总量 (默认值1000)
-k测试服务端Redis是否开启keepalive (1为开启,0为关闭)
-t对指定命令执行基准测试
-q仅返回测试信息中的requests per second字段
–csv将测试结果以CSV格式返回

Redis管理

启动

Redis服务启动分为:默认配置启动、指定配置启动、配置文件启动

1)默认启动:所有参数配置根据默认值指定;

2)指定配置:启动时指定部分参数配置,未指定的均使用默认值;

3)配置文件:根据配置文件的启动参数,系统自动进行指定配置启动;

//Redis的安装目录下的“redis.conf”存储Redis的默认配置


Redis启动命令格式:

1)默认启动:redis-server
2)指定配置:redis-server  --参数1  值1  --参数N  值N
3)配置文件:redis-server  文件路径

//指定的配置文件必须以“conf”为文件后缀


如:默认启动Redis
在这里插入图片描述

常用配置参数如下:

配置参数含义
port占用端口
logfile存储日志文件名
dir进程的工作目录 (同时存储持久化文件和日志文件)
daemonize是否以守护进程方式运行

连接

Redis客户端连接分为:交互式连接、命令式连接

1)交互式连接:分配伪终端与Redis服务进行交互;

2)命令式连接:将特定命令发送于Redis服务并返回其运行结果;


Redis连接命令格式:

redis-cli -h IP地址 -p 端口号 选项 命令

1)若指定命令,则为命令式连接(反之为交互式连接);

2)若未指定IP地址和端口号,则默认值分别为127.0.0.1和6379;

选项含义
-a指定服务端Redis密码
-c集群模式下根据MOVED信息自动进行重定向

如:交互式连接Redis服务器,并执行命令验证
在这里插入图片描述

关闭

Redis服务关闭分为:内置命令、外部信号

1)内置命令:Redis客户端执行“shutdown”命令;

2)外部信号:通过kill命令发送强制关闭信号结束进行以关闭服务;

//外部信号关闭可能导致持久化文件出错


内置命令关闭服务格式(交互式连接使用):

shutdown nosave或save

1)也可通过命令式连接使用该命令;

2)“nosave或save”指定关闭前是否生成持久化文件;

//Redis关闭时,在与客户端断开连接后默认生成持久化文件


如:通过交互式连接关闭Redis服务,并查看服务端的日志信息

1)客户端执行命令;
在这里插入图片描述
2)Redis服务端的日志显示信息;
在这里插入图片描述


数据库

数据库:Redis中相互隔离管理键值对的容器

1)Redis默认有16个数据库,数据库名从0开始计数;

2)默认使用0号数据库,切换到其他数据库时命令行会有后缀显示;

3)Redis Cluster只允许使用0号数据库(不建议使用多数据库功能);

//使用多个数据库本质上仍在同一个CPU上工作,存在互相影响可能(单线程)


(1)切换数据库:SELECT 数据库号

1)数据库号默认只存在0~15;


(2)清空当前库中所有键:FLUSHDB

1)若库中键值对数量较多时,存在Redis阻塞风险;


(3)清空所有库中所有键:FLUSHALL

1)若库中键值对数量较多时,存在Redis阻塞风险;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值