本系列作品持续更新中~
Redis入门到精通【基础篇】【一】
Redis入门到精通【基础篇】【二】
Redis入门到精通【基础篇】【三】
Redis入门到精通【实战篇】【一】


概述

学习Redis之前我们要先明白一个概念,什么是非关系形数据库

非关系数据库(NoSQL)

非关系型的数据库,亦称NoSQL,即“Not Only SQL”的缩写,代表了一种不同于传统的关系型数据库的数据库管理系统。随着互联网web2.0网站的兴起,传统的关系数据库在处理超大规模和高并发的动态网站时面临挑战,非关系型数据存储得到了快速的发展,旨在解决大规模数据集合和多重数据种类带来的挑战,特别是大数据应用难题。

这里只做简单介绍,想了解更多的可以看大佬写的NoSQL详细介绍

什么是Redis

Redis是一个使用C语言写成的,开源的高性能key-value非关系缓存数据库。它支持存储的value 类型相对更多,包括string(字符串)、hash(哈希类型)、list(链表)、set(集合)和sorted set(有序集合)。Redis的数据都基于缓存的,所以很快,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis也可以实现数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的。

Redis优缺点

优点

  • 数据结构丰富,支持存储string、hash、set、zset、list等数据结构的value
  • 读写性能优异,低延迟,速度快,基于内存、IO多路复用、良好的编码
  • 支持事务,每个命令具备原子性,除网络处理模块外都是单线程
  • 支持数据持久化,支持AOF和RDB两种持久化方式
  • 支持主从集群、分片集群,主机会自动将数据同步到从机,可以进行读写分离
  • 支持多语言客户端

缺点

  • 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合场景主要局限在较小数据量的高性能操作和运算上
  • Redi不具备自动容错和恢复的功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端IP才能恢复
  • 数据不一致问题,主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性
  • Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂,为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费

安装和启动Redis

Windows下载Redis

注意,Redis官方并没有开发Windows系统的Redis,因此,我们需要下载由微软开发的Windows版Redis

下载地址

1.点击下载Redis-x64-3.2.100.zip
在这里插入图片描述

2.下载解压包解压后,进入文件夹,如下图:
在这里插入图片描述

3.先点击redis-server.exe启动Redis服务,显示如下:
在这里插入图片描述

4.再点击redis-cli.exe连接Redis,显示如下:
在这里插入图片描述
注意!!!启动redis-cli.exe后不要关闭redis-server.exe程序,否则会报“Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接”的错误

5.Windows下Redis安装完成

Linux下载Redis

1.Redis是基于C语言编写的,因此需要安装Redis需要的gcc依赖:

yum install -y gcc tcl

2.进入Redis历史版本集,根据自己需求下载合适版本,笔者这里下载的redis-6.2.4.tar.gz
在这里插入图片描述

3.将解压包上传到虚拟机的制定目录,笔者这里选的目录是/user/local/src

先进入特权模式

sudo -s

使用tar -zxvf 文件名的指令解压

tar -zxvf redis-6.2.4.tar.gz

进入Redis的安装目录

cd redis-6.2.4

运行编译命令

make && make install

在这里插入图片描述

没有报错即为安装成功

以上/home/user/local/src/redis-6.2.4/src即为安装路径

该目录以及默认配置到环境变量,因此可以在任何目录下运行这些命令。其中:

  • redis-cli:是Redis提供的命令行客户端
  • redis-server:是Redis的服务端启动脚本
  • redis-sentinel:是Redis的哨兵启动脚本

4.启动

Redis的启动方式有多种:

  • 默认启动
  • 指定配置启动
  • 开机自启

我们可以在任意目录下输入redis-server命令即可启动Redis,显示如下:

redis-server

在这里插入图片描述
以上启动方式属于前台启动,会阻塞整个会话窗口,窗口关闭或按下ctrl+cRedis停止服务,不推荐使用

5.配置

要让Redis以后台方式启动,则需修改Redis配置文件

首先备份一份配置文件

cp redis.conf redis.conf.bck

进入配置文件,如下所示:

vi redis.conf

在这里插入图片描述

然后修改redis.conf文件中的一些配置

# 允许监听的地址,默认是 127.0.0.1 ,会导致只能在本地访问,修改为 0.0.0.0 则可在任意IP访问,生产环境不要设置为 0.0.0.0
bind 0.0.0.0

# 守护进程,修改为 yes 后即可后台运行
daemonize yes

# 密码,设置后访问 Redis 必须输入密码
requirepass 密码

# 监听端口
port 6379

# 工作目录,默认是当前目录,也就是运行 redis-server 时的命令,日志、持久化等文件会保存在这个目录
dir ./

# 数据库数量,设置为1,代表只使用1个库,默认16个库,编号 0-15
databases 1

# 设置 Redis 能够使用的最大内存
maxmemory 512mb

# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

注意,一定要给Redis设置密码,不然可能造成严重安全事故!!!

再次启动Redis

# 进入 Redis 安装目录
cd /home/user/local/src/redis-6.2.4/src

# 启动
redis-server redis.conf

启动后可以通过以下指令查看Redis是否正常运行,如下图所示:

ps -ef | grep redis

在这里插入图片描述

我们还可以根据上述进程号,停止服务

kill -9 进程号

或者

# 利用 redis-cli 来执行 shutdown 命令,即可停止 Redis服务
redis-cil -u 密码 shutdown

实现开机自启

vi /etc/systemd/system/redis.service

内容如下:

[Unit]
Description=redis-server
After=network.target

[Service]
ExecStart=redis-server地址 redis.conf地址
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后重载系统服务

systemctl daemon-reload

之后我们就可以对Redis进行操作了

# 启动
systemctl start redis

# 停止
systemctl stop redis

# 重启
systemctl restart redis

# 查看状态
systemctl status redis

执行下面的命令,可以让redis开机自启:

systemctl enable redis

如下图所示,Linux系统的Redis安装配置成功
在这里插入图片描述

性能测试

redis 性能测试的基本命令如下:

redis-benchmark [option] [option value]
序号参数描述默认值
1-h指定服务器主机名127.0.0.1
2-p指定服务器端口6379
3-s指定服务器 socket
4-c指定并发连接数50
5-n指定请求数10000
6-d以字节的形式指定 SET/GET 值的数据大小2
7-k1=keep alive 0=reconnect1
8-rSET/GET/INCR 使用随机 key, SADD 使用随机值
9-P通过管道传输 请求1
10-q强制退出 redis。仅显示 query/sec 值
11–csv以 CSV 格式输出
12*-l*(L 的小写字母)生成循环,永久执行测试
13-t仅运行以逗号分隔的测试命令列表。
14*-I*(i 的大写字母)Idle 模式。仅打开 N 个 idle 连接并等待。

本节结束

本系列作品持续更新中~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐