Redis系列之CentOS下安装与启动和关闭

如无特殊说明,本站Redis系列文章均基于Redis 5.0.8,CentOS 7.9,远程连接工具RDM。

Redis 是一个开源的(BSD许可)、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

redis借鉴了linux操作系统对于版本号的命名规则:版本号第二位如果是奇数,则为非稳定版本(比如4.1),如果是偶数,则为稳定版本(比如5.0)。当前奇数版本就是下一个稳定版本的开发版本。所以生产环境最好选择偶数版本的redis。

安装方式有yum安装和源码编译安装。

有人说编译安装性能好?扯犊子~

编译安装的优势是:

  • 编译安装时可以指定扩展的module(模块),Php、Apache、Nginx都是一样有很多第三方扩展模块,如MySQL,编译安装时候,如果需要就定制存储引擎(Innodb,还是MyIASM)
  • 编译安装可以统一安装路径,linux软件约定安装目录在/opt/下面
  • 软件仓库版本一般比较低,编译源码安装可以根据需求,安装最新的版本

编译安装redis步骤

1
2
3
4
5
6
7
8
9
10
11
12
# 下载redis源码 
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
# 解压缩
tar -zxf redis-5.0.8.tar.gz
# 建立一个redis目录的软连接
ln -s redis-5.0.8 redis
# 切换redis源码目录
cd redis
# 编译源文件
make
# 编译好后,src/目录下有编译好的redis指令
make install # 安装到指定目录,默认在/usr/local/bin,安装在默认目录可以在任意目录下执行redis命令

执行命令查看版本:

1
2
[root@iZ8vbavndeiwj2ctanxb49Z /]# redis-cli -v
redis-cli 5.0.8

redis可执行文件

1
2
3
4
5
6
./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的rdb文件
./redis-cli //redis的命令行客户端
./redis-server //redis的服务端,启动redis
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理

启动redis服务端

启动方式共有三种:

  • 默认启动
  • 运行启动
  • 配置文件启动

默认启动

默认启动redis非常简单,直接切换到/usr/local/bin目录下执行redis-server就可以启动服务端了。

默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。

image-20220215183116295

运行启动

redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置。

1
redis-server --configkey1 value1 --configkey2 value2

例如,指定端口启动:

1
redis-server --port 6379

虽然运行配置可以自定义配置,但是没有保存到文件中,所以一般只在快速调试的时候可能会使用。

配置文件启动

将配置项写到配置文件中,那么只需要执行如下命令就可以启动 redis:

1
redis-server redis.conf

redis配置项众多,比如:

  • port 端口
  • logfile 日志文件
  • dir redis工作目录(存放持久化文件和日志文件)
  • daemonize 是否以守护进程的方式启动redis

redis命令行客户端

redis-cli可以使用两种方式连接redis服务器

  • 交互式方式:

    通过redis-cli -h {host} -p {port}的方式连接到redis服务,之后所有的操作都是通过交互式实现的:

1
2
3
4
5
6
7
8
9
10
redis-cli  -h 127.0.0.1 -p 6379
#测试是否连接上redis
127.0.0.1:6379 > ping
返回pong代表连接上了
//用set来设置key、value
127.0.0.1:6379 > set name "Just"
OK
//get获取name的值
127.0.0.1:6379 > get name
"Just"
  • 命令方式

    使用redis-cli -h {host} -p {port} {command}就可以直接得到命令的返回方式:

    1
    2
    redis-cli -h 127.0.0.1 -p 6379 get name
    "Just"

需要注意的是:如果没有-h参数,那么默认连接 127.0.0.1,如果没有-p参数,那么默认6379端口

停止redis

可以使用shutdown命令

1
redis-cli shutdown

查看日志:

1
2
3
4
5
Ready to accept connections 
User requested shutdown... # 客户端发出关闭指令
Saving the final RDB snapshot before exiting. # 保存rdb持久化文件
DB saved on disk # 将rdb文件保存到磁盘上
Redis is now ready to exit, bye bye...

再次尝试连接:

1
2
[root@iZ8vbavndeiwj2ctanxb49Z /]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused

使用shutdown关闭redis比较优雅,断开与客户端的连接,持久化文件生成。

除了shutdown命令,还可以使用kill命令,但是不要使用kill -9强制杀死redis,这样不但不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,甚至会造成aof和复制丢失数据的情况。

shutdown还有一个参数,代表是否在关闭redis前,生成持久化文件:

1
redis-cli shutdown nosave|save
如果觉得写的还行,赞助瓶脉动~
0%